【问题标题】:Retrieve data using ajax from php使用 ajax 从 php 检索数据
【发布时间】:2011-12-05 22:52:56
【问题描述】:

我有一个 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 我断定它进入错误函数而不是成功...任何人都知道这样做的正确方法是什么?或者我只是错过了什么?谢谢!

【问题讨论】:

  • 你看过使用 firebug 的 ajax 响应了吗?

标签: php mysql json jquery


【解决方案1】:

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

编辑:应该如下所示:

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

【讨论】:

    【解决方案2】:

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

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

    然后回显您的数据:

    echo json_encode( $data );
    

    然后退出脚本:

    exit;
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 2015-09-05
      • 2012-01-04
      • 2012-07-27
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多