2017-02-10 31 views
0

如果执行查询,我已经向AJAX发送了一个数组以返回状态。在AJAX中检索响应文本

if(mysqli_query($dbconfig,"INSERT INTO todo(description) values('$desc')")){ 
     $response['success']="true"; 
} 
header('Content-type: application/json'); 
echo json_encode($response); 

在客户端脚本中,我尝试了下面的代码,根据状态显示消息。

if(response.status=="success"){ 
     alertify.success("New item has been added successfully"); 
}else if(response.status=="error"){ 
     alertify.error("Error while adding the item"); 
} 

即使查询运行正确,它也不能满足这两种情况。在我的控制台日志中,状态显示成功。

enter image description here

+0

那是你的对象打印你在成功处理程序中获得什么? – r1verside

+0

@ r1verside抱歉,我没有得到什么成功处理程序。我只是做了console.log(响应);其中响应是函数的参数。 –

+0

由于AJAX申请是异步的,成功处理程序是您传递给您的请愿代码以便在服务器响应您的请愿时执行的功能。我想这是你写'console.log(response)'的地方。如果是这样,我在我的答案中提供的两种解决方案中的任何一种都应该这样做: – r1verside

回答

1

根据您所提供,你可以做两件事情

if(response.status === 200){ 
    //handle success 
} else { 
    //handle error 
} 

或者,如果你喜欢,你可以尝试用代码:

var status = JSON.parse(response.responseText); 
if(status.status === "success"){ 
    //handle success 
}else{ 
    //handle error 
} 
+0

我尝试了您提供的两种方法。它在其他条件甚至状态是成功的 –

+1

如果在结果行动处理程序中,你已经把console.log(响应),并且结果是你粘贴你的问题,这是没有意义的。它必须工作。您是否尝试使用[Chrome开发工具](https://developers.google.com/web/tools/chrome-devtools/) – r1verside

+1

@SureshPokharel在第二个选择中出现错误,我在比较responseText中的对象而不是其状态属性 – r1verside