通过Ajax问题向PHP发布JavaScript值

时间:2014-04-06 15:13:04

标签: javascript php jquery ajax

我需要获取一个从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。我已经尝试了我在这里看到的所有变体,只有上面的代码会导致成功函数警报触发。

1 个答案:

答案 0 :(得分:0)

我在这看到一个错误

$r = mysql_query  ("INSERT INTO test VALUES ".($_POST['mpg'])."", $conn);}

&#34;}&#34;在行尾可能会抛出一个错误。当ajax运行时,.php文件中是否有错误?

要检查是否存在错误或查看.php文件返回的内容,请按以下步骤操作:

  1. 使用Chrome右键单击您的页面,然后选择&#34; Inspect Element&#34;
  2. 点击&#34;网络&#34;在菜单中
  3. 如果未激活,请点击过滤器图标(取决于您的Chrome版本)
  4. 单击子菜单的XHR元素
  5. 刷新页面并显示.php文件
  6. 点击它,查看文件返回的内容
  7. (也可以在Firefox中完成但不完全相同的标题)

    告诉我们你在这里得到了什么。

    另外,你应该采用extern文件方式。因为返回的ajax数据对应于.php文件内容。如果.php文件包含的内容不是您需要返回的内容,则会出现问题。示例:.php文件中的任何HTML都将在ajax数据中返回,这可能远非您想要的。