Jquery.ajax üzerinde kullanarak sorun. Zend üzerinde yük

3 Cevap php

Şu anda, ben ne çalışıyveyaum html bir blok ile ön sayfasında bir etiket değiştirmektir. Şu anda, sayfa temelde vardır:

<label id="replace"></label>

js şu var:

$(document).ready(function(){
  $("#replace").load('/test');
});

Zend sınıf işlevi vardır:

public function indexAction(){
  $this->_helper->layout()->disableLayout();  
  $this->_view->message = "This is from TestController index";
}

ve son olarak index.phtml şablon sadece var

<?php echo $this->message;?>

Sağ şimdi, yerine sadece aynı mesaj ile bu etiket yerine, bu fonksiyon parametresini çekin bir POST yapacağını böylece (örneğin gibi, veritabanına gidin ve çekin bir şeyler yapmak, etrafında kodunu değiştirmek istiyveyaum POST parametresi ile bir şey dışarı) ve ardından mesajı döndürür.

Ben benziyveya ki böylece js düzenleme denedim:

$.post('/test', {param : "test_param"},
function(data) {$("#replace").html(data);});

veya

$.ajax({
  type: 'POST',
  url: '/test',
  data: "{param:test_param}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(data) {$("#replace").html(data);}
});

and neither wveyaked. I took a step back and tried to replicate the .load functionality and do:

$.ajax({
  url: '/test',
  success: function(data) {
    $('#replace').html(data);
    alert('Load was perfveyamed.');
  }
});

and it doesn't wveyak either.

Herkes bu yapıyor hakkında gitmek konusunda herhangi bir ipucu var mı?

3 Cevap

Eğer ajax kullanarak dışarı ile /test doğrudan arayabilirsiniz emin misiniz? Ayrıca, size aradığınız mutlak url ne olduğunu görmek. Hata geri arama eklemeyi deneyin ve işe yaradığını görmek, bu size sorunu çözmek yardımcı olacaktır hata yanıtını verecektir.

Var orijinal. Posta kodu doğru görünüyor

$.post('/test', { param: "test_param" }, function(data) {
 $('#replace').html(data);
});

Ayrıca herhangi bir hata rapor ediliyor olmadığını görmek için tarayıcılarda JavaScript konsolu bakarak deneyebilirsiniz.

Denetleyiciniz görünüm parametrelerini kodlamak otomatik JSON ayarlanmış mı?

Bence iki şekilde de sizin gibi erişmek gerekiyordu

. {Success: function (data) {$ ("# yerine") html (data.message); }