我目前正在使用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注入持开放态度。

10-05 20:55
查看更多