, Parametreleri ile jQuery'nin ajax olsun isteği kullanarak dönen sayfa içeriği

2 Cevap php

Ben zaman takdir olarak, benim bakarak soru için teşekkür ederiz.

Tamam, ben yerine sonuçta ben istiyorum ki bir sayfamın ana içeriğin inşa şablon eksi benim statik üstbilgi / altbilgi, bir değişken döndürür benim php komut aramak için jQuery en get işlevini kullanmaya çalışıyorum " sayfa yükleme olmaksızın eski "sayfa içeriği. Herkes burada yanlış gidiyorum nereye kadar bana doğru yönde işaret edebilir? Aşağıdaki gibi benim kod ...

jQuery:

function getData(time, type) {
     $.ajax({
            type: "GET",
            url: "getData.php",
            data: "time=" + time + "&type=" + type,
            success: function(data){
               $('#pageContent').fadeOut("slow");
               $('#pageContent').html(data);
               $('#pageContent').fadeIn("slow");
     }
    });
    return false;
}

getData.php (paraphrased):

    ....

    $time = empty($_GET['time']) ? '' : $_GET['time'];
    $type = empty($_GET['type']) ? '' : $_GET['type'];
    echo getData($time, $type);

    function getData($time, $type)
    ......
        .....
            $tmpl = new Template();
            $tmpl->time= $time;
            $tmpl->type = $type;
            $builtpage = $tmpl->build('index.tmpl');
            return $builtpage;
        .....
    ......

jQuery işlevi çağrısı:

<a href="#" onclick="getData('<?php print $tmpl->time; ?>', 'Orange')">Orange</a>
<a href="#" onclick="getData('<?php print $tmpl->time; ?>', 'Apple')">Apple</a>
<a href="#" onclick="getData('<?php print $tmpl->time; ?>', 'Banana')">Banana</a>

Ben herhangi bir bağlantıyı tıkladığınızda, ajax iyi çalıştırmak gibi görünüyor, ve sayfa yeniden reddediyorum, ama içeriği hala değişmeden kalır ... Herkes ne kadar var biliyor musun?

2 Cevap

İlk success fonksiyonu, sizin için ne arıyor alıyorsanız emin olmak için kontrol edin:

success: function(data){
  alert(data);
}

Ayrıca php dosyasında, komut üstüne koyarak bu deneyin:

header("Content-Type: text/html");

Ve kodunuzu gibi değiştirerek deneyin:

success: function(data){
  $('#pageContent').html(''); // remove what was before
  $('#pageContent').fadeOut("slow");
  $('#pageContent').html(data);
  $('#pageContent').fadeIn("slow");
}

Ajax ince çalışmaz:

<a href="#" onclick="getData("<?php print $tmpl->time; ?>", "Orange")">Orange</a>
                             ^
                             End of attribute value here

(" ve ' arasında geçiş veya varlıkları kullanarak) doğru bir validator ve yuva senin tırnak kullanın.