我不确定为什么if / else语句在比较响应成功时,并不是真的。第一个警报,警告“成功”,但是当我尝试比较它时...它没有发现它是真的。我究竟做错了什么?提前谢谢。
$("#suggestion_button_box").click(function(){
var suggestion = $("#suggest_input_id").serialize();
if(suggestion != "") {
$.post('suggest_tag.php',suggestion, function(response) {
alert(response);
if(response == "success") {
alert('yes');
}else {
alert('no');
}
});
}
});
PHP部分
echo "success";
答案 0 :(得分:1)
正如我上面提到的 - jQuery可能会将结果字符串解释为纯文本之外的其他内容。默认情况下,jQuery.post()会尝试智能地猜测返回的数据类型。 API提供了4个参数选项,尝试将第四个参数(dataType)设置为“text”并查看它是否开始运行。
修改强>
我注意到你上面的评论,这改变了一些事情,所以'数据'现在可能是XML / HTML元素。
你必须看看返回的对象是否是XML元素,如果是这样,你可以进行DOM遍历并可能通过执行$(response).text()来检索。
编辑2 您是否收到了回复< code>“success”< / code>或者你是否试图表明它是<?php echo“success”;?>?
答案 1 :(得分:0)
从我的到期,你的一个PHP脚本中可能有一些白色字符(即之前
如果这不能解决您的问题,您可以随时使用JS trim()函数:
if(response.trim() == "success") {
甚至jQuery.trim()也是更多的crossbrowser。
答案 2 :(得分:0)
试试这个:
$("#suggestion_button_box").click(function(){
var suggestion = $("#suggest_input_id").val();
if(suggestion != "")
{
$.post('suggest_tag.php', { suggestion : suggestion },
function(response) {
alert(response);
if(response == "success") {
alert('yes');
}else {
alert('no');
}
});
}
});