如何在php中定义一个可以与jquery中的.done一起使用的变量
如果我有一些php逻辑导致:如何在php中定义一个可以与jquery中的.done一起使用的变量,php,jquery,ajax,Php,Jquery,Ajax,如果我有一些php逻辑导致: $staus = "pass"; 或: 在我的jQuery/Ajax中,我有: $(function() { $( "#send" ).click(function(e){ e.preventDefault(); $( "#send" ).prop( "disabled", true ); $( ".loader" ).show(); $( "#send" ).html( "Sending <img src='img/ajax-loader.gif'>
$staus = "pass";
或:
在我的jQuery/Ajax中,我有:
$(function() {
$( "#send" ).click(function(e){
e.preventDefault();
$( "#send" ).prop( "disabled", true );
$( ".loader" ).show();
$( "#send" ).html( "Sending <img src='img/ajax-loader.gif'>" );
var form_data = $( "#contact-form" ).serialize();
$.ajax({
type: 'POST',
url: 'send.php',
data: form_data
}).done(function(response) {
if(response.status == "pass")
// console log something here
但是当我尝试Console.log数据时,我在Google Chrome控制台中没有定义
if($_POST) {
$message = "";
if(empty($_POST['first_name'])) {
$message .= "First name required<br/>";
}
if(empty($_POST['last_name'])) {
$message .= "Last name required";
}
if($message) {
echo "<div class='alert alert-danger'>" . $message . "</div>";
$pass = "error";
} else {
echo "<div class='alert alert-success'>Form submitted successfully</div>";
$pass = "succeed";
}
}
我猜是这样的: 常数staus= 洛格斯塔斯;
在ajax响应中,您将从PHP获得所有echo值。若您希望ajax在变量中给出结果,那个么可以使用JSON数据类型来检索数组中的数据。有关更多详细信息,请参阅链接
$(function() {
$( "#send" ).click(function(e){
e.preventDefault();
$( "#send" ).prop( "disabled", true );
$( ".loader" ).show();
$( "#send" ).html( "Sending <img src='img/ajax-loader.gif'>" );
var form_data = $( "#contact-form" ).serialize();
$.ajax({
type: 'POST',
url: 'send.php',
dataType: 'json',
data: form_data,
success: function(json){
if(json['error'])
{
$('#your_notification_div').html("<div class='alert alert-danger'>" +json['message']+ "</div>")
}
else
{
$('#your_notification_div').html("<div class='alert alert-success'>"+json['message']+"</div>")
}
}
});
});
});
编辑验证PHP文件:
if($_POST) {
$json = array();
$message = '';
if(empty($_POST['first_name'])) {
$json['error'] = 'true';
$message .= "First name required<br/>";
}
if(empty($_POST['last_name'])) {
$json['error'] = 'true';
$message .= "Last name required";
}
if(!isset($json['error'])) {
$json['success'] = 'true';
$message = 'Form submitted successfully';
}
$json['message'] = $message;
echo json_encode($json);
}
你能包含更多的jQuery代码吗?是的,这些内容不足以给出你的答案。现在要编辑…请添加更多信息,比如Ajax请求中的响应格式和内容类型。显示你的php代码以给出完美的答复。我真的不知道你的意思是什么?我是否需要更改其他代码,或者我是否可以将成功替换为.done?请替换我的代码片段,并告诉我它是否有效。使用此代码时不会发生任何事情。页面上没有显示任何内容,也没有控制台输出。您是否可以检查js错误,因为我没有在控制台中测试它?或者如何?
if($_POST) {
$json = array();
$message = '';
if(empty($_POST['first_name'])) {
$json['error'] = 'true';
$message .= "First name required<br/>";
}
if(empty($_POST['last_name'])) {
$json['error'] = 'true';
$message .= "Last name required";
}
if(!isset($json['error'])) {
$json['success'] = 'true';
$message = 'Form submitted successfully';
}
$json['message'] = $message;
echo json_encode($json);
}