2010-05-23 62 views
0

我想使用jQuery的get函數來調用我的php腳本。 php腳本返回一個變量,其中包含我的頁面主要內容的內置模板減去靜態頁眉/頁腳。使用jQuery的ajax獲取請求的參數,返回頁面內容

我想使用返回的內容替換「舊」頁面內容而不重新加載頁面。任何人都可以在正確的方向上指出我到哪裏去錯了嗎?我的代碼如下...

的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(轉述):

.... 

    $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函數調用:

<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> 

當我點擊任何鏈接,ajax似乎運行良好,頁面拒絕重新加載,但內容仍然保持不變...任何人都碰巧知道 這是怎麼回事?

回答

4

首先在success功能,檢查以確保您收到你在找什麼:

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

另外在PHP文件,嘗試把這個在腳本的頂部:

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

並嘗試修改喜歡你的代碼:

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

謝謝你我的朋友,你是救命的人。 – NickKampe 2010-05-23 14:43:14

+0

@Stevie Jenowski:不客氣:) – 2010-05-23 14:45:51

1

阿賈克斯將不會運行良好:

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

正確使用validator和巢您的報價(由"'之間切換或使用實體)。

+0

+1:好趕上..... :) – 2010-05-23 14:31:54

+0

欣賞它,但這些都只是粗心的拼寫錯誤,因爲我在工作中,沒有代碼容易在面前我 – NickKampe 2010-05-23 14:33:54

+0

* facepalm * - 調試代碼是*像*一些其他代碼不工作總是很有趣。 – Quentin 2010-05-23 14:39:05