我正试图将数据发送到我的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脚本(插入DB)的第一个值,而不是我JSON编码的值。。。为什么?
尝试使用
if ($.trim(data.success) == 1)
有时我也会遇到类似的情况,我使用这个解决了这个问题
将header("content-type: application/json");
置于echo
之前。