使用php中的ajax检索数据

时间:2011-12-05 22:52:56

标签: php mysql json jquery

我有一个ajax代码,它将数据传递给php,然后从php中检索数据......

function updateDatabase(syncData){
    $.ajax({
            type : 'POST',
            async: false,
            url : 'php/syncData.php',
            dataType : 'json',
            data: {myData : syncData}, //i even used this "mydata"+syncData
            success : function(result){
                res = result;                               
            },
            error : function() {
                res = false;
            }
    });

    return res;
}

这是我的PHP代码......

<?php

    include("database.php");

    if(isset($_GET['myData'])){
        $data = $_GET['myData'];

        $insert = "INSERT INTO `mydata` VALUES (NULL,'$data')";
        mysql_query($insert);


       $data = mysql_insert_id();
       echo json_encode($data);

}

?>

这是传递/调用ajax的javascript函数...

<script>

var theData = "blahblah";
var alertData = updateDatabase(theData);

alert(alertData);

</script>

问题在于,当我使用htmt / text作为数据类型时,它会警告空/空输出,但是当我使用json作为数据类型时,它会警告false我在哪里得出错误函数不成功...任何人都知道这样做的正确方法是什么?或者我可能只是错过了一些东西?谢谢!

2 个答案:

答案 0 :(得分:4)

嗯,你是使用jQuery发布数据,但是你在PHP中寻找$_GET值。修复它,看它是否有任何改变。

修改:它应如下所示:

...
    if(isset($_POST['myData'])){
        $data = $_POST['myData'];
...

答案 1 :(得分:0)

尝试在PHP文件中设置内容类型:

header( 'Content-Type: application/json' );

然后回复你的数据:

echo json_encode( $data );

然后退出脚本:

exit;

希望它有所帮助!