使用ajax将数据从javascript发布到php文件不起作用

时间:2016-10-24 05:56:31

标签: javascript php ajax

当我尝试使用ajax将数据从javascript文件发布到php文件时,使用后在php文件中没有显示

  

$ _ POST [ 'userinput']

这是javascript文件:

 searchBox.addListener('places_changed', function() {
        var places = searchBox.getPlaces();
        userinput = places[0].name.toString();  // Get user input from search box

        // Pass data to userinput.php via ajax
        $.ajax({
            url: 'userinput.php',
            data: {userinput : userinput},
            type: "POST",
            success: function (result) {
                alert(JSON.stringify(result));
            }
        });

    });

php文件:

    if (isset($_POST)) {
        $servername = "localhost";
        $username = "XXXXXXX";
        $password = "XXXXXXXXX";
        $dbname = "CALIFORNIA";

        $city = $_POST['userinput']; // Nothing is posted here

        // Create connection
        $conn = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password);
        $conn->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, 1);


        $sql = $conn->prepare("SELECT State FROM  CITY as C WHERE   C.City_name=$city");
        $sql->execute();

        $result = $sql->fetchAll();
        $json = json_encode($result);
        echo $json;
    }

我能够连接到mysql数据库。但是,没有从javascript文件发布到php的数据。从这一点来说,我不知道该怎么做。值 $ city 不打印任何内容。在客户端,它打印出一个空对象。

1 个答案:

答案 0 :(得分:1)

在你的ajax函数中

尝试设置dataType属性

$.ajax({
            url: 'userinput.php',
            data: {'userinput' : 'userinput'},
            type: "POST",
            dataType: "text", // add this property
            success: function (result) {
                alert(JSON.stringify(result));
            }
        });