[英]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.