2012-08-22 131 views
0

我正在重新設計我的網站以使其基於WordPress,並且在此過程中,我需要導入一些PHP/jQuery。我發現它在original page上正常工作,但不是new oneJSON在一個地方工作,但不是另一個地方

這裏有JSON的結果轉儲:

  • Old - 空的,因爲它應該是,因爲沒有數據
  • New - 不喜歡使用$ _ POST [ '俱樂部']來導入

在這兩種情況中的代碼是:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: "post", 
      url: "eventinfo.php", 
      data: $('#club').serialize(), 
      success: function(data) { 
       $('#right_inside').html('<h2>' + $('#club').val() + '<span style="font-size: 14px"> (' + data[0].day + ')</h2><p>Entry: ' + data[0].entry + '</p><p>Queue jump: ' + data[0].queuejump + '</p><p>Guestlist closes at ' + data[0].closing + '</p>'); 
       }, 
      dataType: "json" 
     }); 
    }); 

    $('#club').change(function(event) { 
     $.ajax({ 
      type: "post", 
      url: "eventinfo.php", 
      data: $(this).serialize(), 
      success: function(data) { 
       $('#right_inside').hide().html('<h2>' + $('#club').val() + '<span style="font-size: 14px"> (' + data[0].day + ')</h2><p>Entry: ' + data[0].entry + '</p><p>Queue jump: ' + data[0].queuejump + '</p><p>Guestlist closes at ' + data[0].closing + '</p>').fadeIn('500'); 
       }, 
      dataType: "json" 
     }); 

    }); 
</script> 

的d我eventinfo.php是:

<?php 

header('Cache-Control: no-cache, must-revalidate'); 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Content-type: application/json'); 

include('guestvibe_functions.php'); 
connect(); 


$night = $_POST['club']; 
$night = mysql_real_escape_string($night); 

$query = "SELECT * FROM nights WHERE name = '" .$night. "'"; 

    $result = mysql_query($query); 
    $items = array(); 

    if($result && mysql_num_rows($result) > 0) { 
     while ($row = mysql_fetch_array($result)) { 
     $items[] = array("entry"=>$row['entry'], "day"=>getLongDateString($row['day']), "queuejump"=>$row['queue jump'], "closing"=>$row['closing']); 
     } 
    } 

    mysql_close(); 
    // convert into JSON format and print 

    echo json_encode($items); 
?> 

這是爲時已晚,所以我希望我已經解釋了這個好。任何想法有什麼不對?

編輯

我要補充一點,兩者是同一臺服務器上/託管計劃。新的只是一個目錄。

回答

0

我看到兩種可能性。

第一個是,在新網站上,club =變量不是由AJAX在舊網站中填充的。然後你必須發現爲什麼serialize()不包含一個名爲'club'的變量。

第二個問題是即使在舊網站中,俱樂部=變量也不一定會填充,並且您只是沒有收到通知警告。

在這種情況下,修改所述代碼從

$night = $_POST['club']; 

$night = isset($_POST['club']) ? $_POST['club'] : ''; 

應該解決的問題。

UPDATE

我查了網站,但我收到的eventinfo URL是你引用的不一樣。我的Firefox得到的是:

http://www.guestvibe.com/wordpress/eventinfo.php 

...這將導致404錯誤。

+0

感謝您的回覆。我可以確認serialize()確實包含一個名爲club的變量,因爲它可以在jQuery中打印。發生問題的地方是將該變量傳遞給eventinfo.php以返回對應於'club'的數據庫值。你從哪裏獲得該eventinfo網址?考慮到它不存在,404是可以理解的。 – Sebastian

相關問題