繁体   English   中英

jQuery $ .post返回错误的数据

[英]Jquery $.post is returning the wrong data

当我的ajax被处理

$.post("main.php", 
          {data: $(this).text()}, 
          function(data) {
               //alert("Data saved.");
               $('#demo').html(data);
          });   

而不是得到我在下面的查询中指定的内容

if (isset($_POST['data'])){
$data = $_POST['data'];

    $query = mysql_query("SELECT * FROM tempusers
    WHERE 'firstname' LIKE '%$data%' 
        OR 'lastname' LIKE '%$data%' 
        OR 'title' LIKE '%$data%'");

    while($row=mysql_fetch_assoc($query)){
                $firstname=$row['firstname'];
                $lastname=$row['lastname'];
                $grade=$row['grade'];


    echo $grade;

相反,我得到了页面中的所有元素。 所以换句话说就是下面的div

 <div id="demo"></div>

我要返回我的页面。 因此它显示为网站内的网站。 它甚至不会显示echo $grade; 我以为这是我的查询,但我尝试注释掉该查询,然后echo $data 请参见下文

if (isset($_POST['data'])){
$data = $_POST['data'];
echo $data; 

这样做给了我与前面所说的“在网站内淘汰网站”相同的结果,并且也呼应了我想要的$ data。 我会很高兴了解这是如何发生的以及如何解决此问题并更正我的isset函数/ ajax。 任何其他技巧将不胜感激。 我知道我需要将查询更改为PDO并对其进行计划。

回显您想要的内容后,请显式退出以终止任何进一步的脚本执行。

 echo $grade;
 exit;

如果坡度回波在循环中,则在循环终止后放置出口。

当您进行回显时,ajax会将其作为响应并关闭连接(因此您只会从服务器收到一个答案),

所以我的建议是,在回显之前先合并所有值。 您可以使用json编码和解码来传递值并将其显示出来。

Json编码php => http://php.net/manual/es/function.json-encode.php

Javascript json encode => 如何在JavaScript中对数组元素进行JSON解码?

问题是您正在回显“数据”,并且正在以这种方式发送“数据”:

 {data: $(this).text()}, 

所以问题出在this.text中,当您说这个时,您指的是什么? 它必须占用整个网站并发送它,然后将其返回,然后将其发布到div。

尝试先这样做:

 {data: "test"},

如果返回的结果是“ test”,则问题是jQuery发送了所有内容。 您可以通过删除$(this)并将其替换为$(“#someid”)。html()来解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM