我需要获取一个从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>
当按下按钮时,此ajax正在运行,并且警报中显示的是js值。
然而
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。我已经尝试了我在这里看到的所有变体,只有上面的代码会导致成功函数警报触发。
答案 0 :(得分:0)
我在这看到一个错误
$r = mysql_query ("INSERT INTO test VALUES ".($_POST['mpg'])."", $conn);}
&#34;}&#34;在行尾可能会抛出一个错误。当ajax运行时,.php文件中是否有错误?
要检查是否存在错误或查看.php文件返回的内容,请按以下步骤操作:
(也可以在Firefox中完成但不完全相同的标题)
告诉我们你在这里得到了什么。
另外,你应该采用extern文件方式。因为返回的ajax数据对应于.php文件内容。如果.php文件包含的内容不是您需要返回的内容,则会出现问题。示例:.php文件中的任何HTML都将在ajax数据中返回,这可能远非您想要的。