【问题标题】:PHP - mySQL query returns no data on first attemptPHP - mySQL 查询在第一次尝试时不返回任何数据
【发布时间】:2012-01-20 18:03:13
【问题描述】:

我不是这方面的专家,所以请耐心等待:

我有一个对 PHP 页面的 jQuery 调用,然后当用户从列表中选择项目时执行查询并返回结果。但是第一次单击列表时没有结果,但在后续单击时会返回正确的结果。 jQuery 代码正在按预期执行并发送正确的信息 - 只是结果无法正常工作。

jQuery 代码(注意 CurrentClientID 中的文件名和数据是正确的。警报仅用于测试):

$.post("include/ListClientAddr.php",{ clientid:CurrentClientID },function(result){
            alert(CurrentClientID + " | " + result);
        });

PHP代码(数据库已经连接成功):

$ThisClientID=$_POST['clientid'];

$sql="SELECT Address_Type FROM Address_Table WHERE Client_ID='" . $ThisClientID . "'";

//get the result
$result=mysql_query($sql);


while($row = mysql_fetch_array($result))
{
    echo $row['Address_Type'].",";
}

返回结果应该是一个逗号分隔的数字列表。在上面的 jQuery 代码中,警报会生成正确的客户端 ID 号,并且在用户第一次单击列表项时没有任何内容,但第二次单击相同的列表项将产生预期的结果。

这将在第一次单击列表中的任何项目时发生 - 如果立即单击另一个项目,则会显示正确的结果,如果立即单击相同的项目,它也会返回正确的结果。

谁能告诉我这是怎么回事?

非常感谢

BK

编辑: 进一步测试表明,列表中的每一项都需要点击两次才能返回正确的数据。

我一直在检查代码,但我不明白为什么会这样。

干杯

BK

【问题讨论】:

    标签: php jquery mysql


    【解决方案1】:

    这是一个下拉列表吗?调用函数是什么?如果它是一个“onchange”事件,那么在列表中选定的索引发生变化之前,它不会调用您的数据函数。

    【讨论】:

    • 不,它是在自定义无序列表上使用的实时点击事件 - 我在页面周围使用了几个,这是迄今为止唯一失败的事件。
    • 能否贴出控制和点击事件的代码?如果这在其他地方有效,那么这个特定的控件或事件一定有问题。
    • 我正在使用: $("#TheList li").live('click', function() { 后面是上面发布的代码。这与在其他地方工作的代码相同,并且它在第二次单击列表时起作用,而不是第一次。
    • 解决方案:我自己的愚蠢!我在同一个函数中调用了 $post() 两次,但一个接一个。 $post 不能那样工作,第二个帖子需要在第一个的成功函数内,而不是完全低于它。我为我没有早点看到这个而失明而道歉 - 这实际上是我从以前的经验中已经知道的事情,但是......看不到树木的树木等等。非常感谢您的努力 BK
    猜你喜欢
    • 1970-01-01
    • 2012-06-16
    • 2015-11-29
    • 2017-01-23
    • 2021-02-05
    • 1970-01-01
    • 2020-02-21
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多