[英]Posting JavaScript Value to PHP via Ajax issue
我需要获取一个从jQuery到PHP的值,以便可以为自己的网站执行搜索功能。
我目前已尝试:
<script>
$(document).ready(function () {
$('#search_button').click(function(e){
e.preventDefault();
e.stopPropagation();
carSearch();
});
});
function carSearch()
{
$.ajax({
type: "POST",
url: 'cars.php',
data:
{
mpg : $('.mpg').val()
},
success: function(data)
{
alert("success! "+$('.mpg').val()+"mpg");
}
});
}
</script>
当按下按钮并且js值在警报中显示时,此ajax正在运行。
然而
if(isset($_POST['mpg']))
{
$query = "SELECT * FROM cars WHERE mpg =< ".($_POST['mpg'])."";
echo "<div class='test'></div>";
}
else
{
$query = "SELECT * FROM cars";
}
isset不会触发,div只是用于测试目的的一个大蓝框。 Ajax将发布到cars.php上,而这也是ajax所在的位置,因此将发布到其自己的文件中。 我还没读完有关它的内容,但是在不使用Ajax之前,我已经将其发布在同一文件中。
我也尝试过将值从ajax发布到另一个文件:
<?php
session_start();
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('cdb', $conn);
if(isset($_POST['mpg']))
{
$r = mysql_query ("INSERT INTO test VALUES ".($_POST['mpg'])."", $conn);}
}
?>
只是为了测试它是否正在做任何事情,并且没有做任何事情。
所以
data:
{
mpg : $('.mpg').val()
},
似乎是错误的,尽管我是通过查看与将js传递给php有关的许多其他问题来理解这一点的。 我已经尝试了在这里看到的所有变体,只有上面的代码才导致成功函数警报触发。
我在这里看到一个错误
$r = mysql_query ("INSERT INTO test VALUES ".($_POST['mpg'])."", $conn);}
该行末尾的“}”可能会引发错误。 Ajax运行时,.php文件中是否存在错误?
若要检查是否有错误或查看什么.php文件返回,请按照下列步骤操作:
(也可以在Firefox中完成,但标题不完全相同)
告诉我们你到这里来了。
另外,您应该使用extern文件方式。 因为返回的ajax数据对应于.php文件的内容。 如果您的.php文件包含您需要返回的内容以外的其他内容,则存在问题。 示例:.php文件上的任何HTML都将返回ajax数据,这可能与您想要的相去甚远。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.