我对这个if语句不能在javascript中工作搞砸了。 我使用js来调用php和php文件echo'true';
我的java脚本代码
function like_add(article_id){
$.post('my/like.php', {article_id:article_id}, function(data){
if(data == 'true'){//this part never works
alert(data);
}else{
alert(data);
}
});
}
我尝试使用alert('*'+data+'*');
得到了空格*真*。 我怎样才能使这个脚本工作。
整个代码
function like_add(article_id){
$.post('ajax/like.php', {article_id:article_id}, function(data){
if(data == 'true'){
total_votes(article_id);
}else{
alert(data);
}
});
} PHP代码
if(previously_liked($article_id) === true){
echo 'You\'ve already liked this!';
}else{
add_like($article_id);
echo 'true';
}
function total_votes(article_id){
$.post('ajax/total_votes.php', {article_id:article_id}, function(data){
$('#article_'+article_id).text(data);
}); }
答案 0 :(得分:2)
你可以在测试中加入一个空格:
if (data == ' true') { ... }
或者您可以在数据中查找“true”模式:
if (/true/.test(data)) { ... }
后者可能会更具弹性,但实际上让服务器返回更结构化,更不模糊的东西会更好。
答案 1 :(得分:0)
我认为你可以做到以下几点:
data = data.replace(/\s/g, "");
答案 2 :(得分:0)
如果它是一个引领你的领先空间,请尝试
if (data.replace(/^\s+|\s+$/,'').toLowerCase() === 'true')