2016-12-06 144 views
0

如何alert a json_encode()消息并重新加载页面?下面只有功能显示JSON编码提醒消息

if($result1 == false) 
$response['msg'] = "Transfer failed due to a technical problem. Sorry."; 
else 
$response['msg'] = "Successfully transferred"; 
echo json_encode($response); 

$("#transfer").click(function() { 
$.ajax({ 
type : "POST", 
url : "transferProduct.php", 
data : {}, 
success : function(data) {      
    data = $.parseJSON(data); 
    alert(data.response);  
    location.reload();   
    } 
}); 
}); 
+3

没有'data.response'对象/属性/值。做一个console.log(数据)来看看返回给你什么 – Tschallacka

+1

建议,你应该分开两种语言,你把PHP和JS混合在一起。 –

+0

如果你做'console.log(data);',你会得到什么输出?另外,你的'data:{}'是空的。 – Ionut

回答

1

你正在试图获得一个未定义指数response

只要你的PHP脚本返回一个未定义的警报消息:

{ 
    "msg": "<your-message-here>" 
} 

在JavaScript中,你可以做它:

$.ajax({ 
    type : "POST", 
    url: "transferProduct.php", 
    dataType: 'json', 
    success : function(response) {      
     alert(response.msg); 
     location.reload();   
    } 
}); 
1

以这种方式使用代码

transferProduct.php

if($result1 == false) 
$response['msg'] = "Transfer failed due to a technical problem. Sorry."; 
else 
$response['msg'] = "Successfully transferred"; 
echo json_encode($response); 

代码页

$("#transfer").click(function() { 
$.ajax({ 
type : "POST", 
url : "transferProduct.php", 
data : {}, 
success : function(data) {      
    datas = $.parseJSON(data); 
    alert(datas.msg);  
    location.reload();   
    } 
}); 
}); 

,也可以代替$就

$("#transfer").click(function() { 
$.getJSON("transferProduct.php",function (data){ 
alert(data.msg);  
    location.reload(); 
}); 
}); 
-1

使用$ .getJSON我想你应该格式化回报在后台正确识别:

{ “成功”:真, “消息”: “---------”}

然后在JavaScript:data.message