2017-08-30 98 views
0

我目前使用jQuery檢索數據庫更新到名爲「followers_count」的列。問題是數據沒有被髮送。我不確定問題出在PHP或jQuery代碼上,還是兩者兼而有之。任何幫助表示讚賞。jQuery未能檢索數據庫更新

在changes.php:

<?php 

require_once 'dbconfig.php'; 
require_once 'class.channel.php'; 

$currNum = $_POST['currentNumber']; 

$seqNum = query("SELECT currval('followers_count')"); 

if ($seqNum == $currNum){ 
    exit(0); 
} 

$newNum = query("SELECT FROM follow WHERE followers_count > ".$currNum); 

while ($change1 = fetch_result($newNum)) { 
    echo "<count1>".$change1."</count1>"; 
} 

?> 

而在index.php文件:

<div> 
    <div id="follow_count"></div> 
</div> 

<script type="text/javascript"> 
$.post("changes.php", 
     { currentNumber }, 
     function(dat){ 
      $(dat).find('count1').each(function() { 
       $('#follow_count').append(""+$(this).text()+""); 
      }); 
}); 
</script> 
+0

爲什麼你會返回像'''? – adeneo

+0

您在while循環中多次回顯。以json的形式迴應你的迴應。同時添加一些錯誤處理到你的帖子(並檢查你的網絡標籤) – Rienk

+0

嘗試'$ .ajaxSetup({cache:false})''。它可能會緩存響應。 – TricksfortheWeb

回答

0

這裏真正的問題是,你喜歡

<count1>1</count1> 
<count1>2</count1> 
<count1>3</count1> 

,然後再返回的東西你在做

$(dat).find('count1') 

dat沒有任何匹配的後代元素,他們都在「根」級別。

你可以使用過濾器

$(dat).filter('count1') 

但何必呢,你有,如果<count1>元素,所以你可以做

$(dat).each(function() { ... 

當然,這一切都非常錯誤的,因爲<count1> ISN什麼都不是有效的,不是XML,當然也不是HTML。
什麼,你應該做的是返回JSON而不是

作爲額外的獎勵,你對SQL注入敞開的,除非query()確實神奇的東西?