Javascript 如何输出php?

Javascript 如何输出php?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在努力处理一个AJAX调用,让我读出返回值。我的php代码会自动返回一个带有false或true的回音,这是为了检查邮件是否已发送。但我正在努力读出它的价值并让它发挥作用 这是我的AJAX代码 if(proceed == true){ $.ajax({ type : 'POST', url : 'inc/actions/sendmail.php', data : $('#sentMessage

我正在努力处理一个AJAX调用,让我读出返回值。我的php代码会自动返回一个带有
false
true
的回音,这是为了检查邮件是否已发送。但我正在努力读出它的价值并让它发挥作用

这是我的AJAX代码

if(proceed == true){            
    $.ajax({
        type    : 'POST',
        url     : 'inc/actions/sendmail.php',
        data    : $('#sentMessage').serialize(),
        cache   : false,
        dataType: 'text',
        success : function (data) 
        { 
            if (data == 'true'){
                $("#sentMessage")[0].reset();
                $("#err").append("<div class='alert alert-success' role='alert'>Bedankt voor je bericht, wij nemen binnenkort contact met je op.</div>");
                $('input[name=name]').css('border-color','')
                $('input[name=email]').css('border-color','')
                $('textarea[name=message]').css('border-color','')
                setTimeout(function(){$('#err').fadeOut();}, 5000);
            }else{
                $("#err").append("<div class='alert alert-danger' role='alert'>Je telefoonnummer bestaat niet uit 10 cijfers.</div>");
                $('input[name=phone]').css({'border':'2px solid red'});
                setTimeout(function(){$('#err').fadeOut();}, 5000); 
            }
        },
        error   : function (jqXHR, textStatus, errorThrown) {console.log(errorThrown);}
    }); 
}
如果(继续==true){
$.ajax({
键入:“POST”,
url:'inc/actions/sendmail.php',
数据:$('#sentMessage')。序列化(),
cache:false,
数据类型:“文本”,
成功:功能(数据)
{ 
如果(数据=='true'){
$(“#sentMessage”)[0]。重置();
$(“#err”)。追加(“Bedankt voor je bericht,wij nemen binnenkort联系人met je op.”;
$('input[name=name]').css('border-color','')
$('input[name=email]').css('border-color','')
$('textarea[name=message]').css('border-color','')
setTimeout(函数(){$('#err').fadeOut();},5000);
}否则{
$(“#err”)。追加(“我的电话号码是10个号码。”);
$('input[name=phone]').css({'border':'2px solid red'});
setTimeout(函数(){$('#err').fadeOut();},5000);
}
},
错误:函数(jqXHR,textStatus,errorThrown){console.log(errorThrown);}
}); 
}
正如您所想,它会不断推出else语句,因为它不会传递if语句,因为它不知道要检查什么

您应该尝试console.log(数据)来准确检查服务器返回的内容。还有一个变化是,它是一个返回的对象,因此您可能需要console.log(JSON.stringify(data))


此外,这可能没有关系,但您应该始终使用三重等于(==),这在JavaScript中是一个很好的实践。

即使您从PHP脚本中输出的都是
true/false
,甚至在您确认
console.log(data)
输出
true/false
之后,字符串周围可能有空格。因此,您可能需要使用:

if( data.trim() == 'true' ) { ....

if( data.indexOf('true') > -1 ) { ..... //<=== OR
console.log( "'" + data + "'" );

添加console.log(数据);就在你之前。然后检查数据对象的结果。很可能它不仅仅是一个简单的布尔值。如果是布尔值,则尝试将条件更改为If(data),而不是If(data='true')。使用
console.log(data)
作为
success
处理程序中的第一条语句,以便查看返回的内容。可能您需要使用
if(data.trim()=“true”)…
实际上,我在php中使用的是回音,而不是布尔值。尽管在控制台上有提示,但我还是忘记了。它确实告诉我返回的是
true
。@Brad只是想知道:当只回一个单词时,为什么需要
json\u encode
。@sri从技术上讲,你不需要,但这些东西不可避免地会增长。例如,当调用失败时会发生什么?也许你想告诉用户它失败的原因,一个简单的布尔值是不够的。这就成功了,我想确实有一个空格。我将检查php文件以获取它。