1

当我的 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 并计划它。

4

3 回答 3

0

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

 echo $grade;
 exit;

如果成绩回显在循环中,则在循环终止后放置出口。

于 2012-11-05T18:51:48.630 回答
0

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

所以我的建议是,连接之前的所有值来回显。您可以使用 json 编码和解码来传递值并将它们显示出来。

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

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

于 2012-11-05T18:54:11.037 回答
0

问题是您正在回显“数据”并且正在发送“数据”:

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

So the problem is in the this.text, when u say this, what are u referring to? it must be taking a whole website and sending it, then returning it and then posting it to the div.

try doing this first:

 {data: "test"},

if the returned result is "test" then the problem is jQuery sending everything. and you can fix that by removing th $(this) and replacing it with $("#someid").html();

于 2012-11-05T20:00:55.500 回答