我目前正在使用jQuery检索数据库更新到名为“ followers_count”的列。问题是没有发送数据。我不确定问题是否出在PHP或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>
最佳答案
真正的问题是您返回的是
<count1>1</count1>
<count1>2</count1>
<count1>3</count1>
然后你在做
$(dat).find('count1')
但是
dat
没有任何与之匹配的后代元素,它们都处于“根”级别。您可以使用过滤器
$(dat).filter('count1')
但何必呢,如果
<count1>
元素仍然存在,那么您就可以$(dat).each( function() { ...
当然,这都是非常错误的,因为
<count1>
无效,不是XML,当然也不是HTML。您应该做的是返回JSON
另外,除非
query()
具有神奇的功能,否则您对SQL注入持开放态度。