Javascript 如何输出php?
我正在努力处理一个AJAX调用,让我读出返回值。我的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
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文件以获取它。