从JSON检索数据时出现Ajax错误

时间:2014-10-17 12:41:00

标签: php jquery ajax json

我正在尝试将数据发送到我的PHP文件,该文件在DB中插入值(这部分没问题),然后将JSON编码数据发送回JavaScript文件,以便我可以显示它们但它不起作用。我不知道出了什么问题。我一直在寻找许多有用的例子,地雷也不起作用。

$.ajax({
    type: "POST",
    dataType: "json",
    url: "requete.php", 
    data: data,
    success: function(data) {
        if (data.success == true) {
            alert(data.message);
        }
    },
    error: function(errorThrown) {
       alert('error');
    }
});

数据被正确发送到PHP并插入到DB中,但以下json将不会显示:

if (isset($_POST['action']) && $_POST['action'] == 'add_attribution') {


 $nom = $_POST['nom'];
 $date = $_POST['date'];
 $montant = (int)$_POST['montant'];
 $type = utf8_decode($_POST['type']); 

    $sql = "insert into bo_depenses (montant,date,personne,description,carte) values('$montant','$date','','$nom','$type')";

    $result = mysql_query($sql);

    $data = array('success'=> true,'message'=>'Success message: hooray!');

    echo json_encode($data);

使用此代码,控制台返回“Object”,并将数据发送到PHP / MySql(??)

感谢您的帮助

UPDATE :我设法通过输入错误来获取json结果:

  var obj = JSON.stringify(data)
  alert(obj);

事实证明,它显示了我发送到我的PHP脚本的第一个值(插入数据库),而不是I JSON编码的那个......为什么?

2 个答案:

答案 0 :(得分:0)

尝试使用

if ($.trim(data.success) == 1)

有时回来我遇到了类似的情况,因为我解决了使用这个

答案 1 :(得分:0)

header("content-type: application/json");放在 echo 之前。