我想在没有刷新页面的情况下提交表单并在表单下显示成功/错误消息,也是在成功重置表单的情况下。但我想,我在ajax代码中做错了,php工作得很好。 Ajax的:
$("#usignupform").validate({
submitHandler:function() {
var $form = $(form),
$messageSuccess = $('#mesSuccess'),
$messageError = $('#mesError');
$.ajax({
url: "investor-invite.php",
type: "POST",
data: $(this).serialize(),
complete: function(data) {
if (data.status == 'success') {
$messageSuccess.removeClass('hidden');
$messageError.addClass('hidden');
// Reset Form
$form.reset();
return;
} else {
$messageError.removeClass('hidden');
$messageSuccess.addClass('hidden');
}
}
});
return false;
}
});
PHP:
function NewUser(){
$data = mysql_query($query)or die(mysql_error());
if($data){
$response_array['status'] = 'success';
} else {
$response_array['status'] = 'error';
}
}
if(isset($_POST['submit'])){
NewUser();
}
HTML:
<form>
--all fields--
<button type="submit" name="submit" id="submitButton">
Request Invite</button>
<div class="alert alert-success hidden" id="mesSuccess">
<strong>Success!</strong> Your message has been sent to us.
</div>
<div class="alert alert-danger hidden" id="mesError">
<strong>Error!</strong> There was an error sending your message.
</div>
</form>
答案 0 :(得分:1)
你需要在php页面上回显内容然后这将返回成功消息。如果在php文件或任何目标文件中存在html或某些打印数据,则Ajax调用将获得响应。
试试这个
function NewUser(){
$data = mysqli_query($query)or die(mysql_error());
if($data){
$response_array['status'] = 'success';
}else {
$response_array['status'] = 'error';
}
return $response_array;
}
$data=NewUser();
echo json_encode($data);
并更新ajax函数
$("#usignupform").validate({
submitHandler:function() {
var $form = $(form),
$messageSuccess = $('#mesSuccess'),
$messageError = $('#mesError');
$.ajax({
url: "investor-invite.php",
type: "POST",
data: $(this).serialize(),
dataType: 'json', //add this to get the json response
complete: function(data) {
if (data.status == 'success') {
$messageSuccess.removeClass('hidden');
$messageError.addClass('hidden');
// Reset Form
$form.reset();
return;
} else {
$messageError.removeClass('hidden');
$messageSuccess.addClass('hidden');
}
}
});
return false;
}
});
答案 1 :(得分:0)
其中是print语句和JSON标题
<?PHP
header('Content-Type: application/json');
echo json_encode($data);
答案 2 :(得分:0)
试试这个,
$.ajax({
type: "post",
url : "ajax.php",
dataType: 'json',
data:{ name : name,claass : claass,mobile : mobile},
success : function(data){
alert("success");
}
},"json");
在php中,
$arr= ['fname'=>$name,'classs'=>$class,'mobile'=>$mobile];
echo json_encode($arr);
注意:尝试使用您的帖子变量。和数组变量,我只是coppy粘贴我的代码快速回答!!!!!!
答案 3 :(得分:0)
而不是使用完整,使用成功。如果你想能够直接引用名称值对,那么你需要解析返回到json的数据,因为你的php目前只将数据作为字符串发回。
$.ajax({url:'investor-invite.php',
type:'POST',
success: function checkData(data){
dataObj = JSON.parse(data);
if(dataObj.status == success){
...
}
else{
...
}
}
});