我是php和ajax的新手,我试图通过ajax(没有reflesh)发送php表单数据,并通过ajax sucess在警告框中显示php的echo msg,但它没有用。 代码如下:
jQuery(document).ready(function(){
jQuery('#ajax_form').submit(function(){
var dados = jQuery( this ).serialize();
jQuery.ajax({
type: "POST",
url: "env.php",
data: dados,
success: function( data )
{
alert( data );
}
});
return false;
});
});
和php回应响应(发送和错误):
$erros = "";
if(empty($_POST['nome'])){
$erros .= "O nome deve ser preenchido.";
}
if(empty($_POST['email']) ){
$erros .= "O E-mail deve ser preenchido.";
}else{
$email = $_POST['email'];
eregi("([\._0-9A-Za-z-]+)@([0-9A-Za-z-]+)(\.[0-9A-Za-z\.]+)",$email,$match);
if(!isset($match)){
$erros .= "O e-mail informado é inválido.";
}
}
if(empty($_POST['mensagem'])){
$erros .= "A mensagem deve ser preenchida.";
}
if( empty($erros) ){
all the code to get form data and send
$send = $phpmail->Send();
if($send){
echo "A Mensagem foi enviada com sucesso.";
}else{
echo "Não foi possível enviar a mensagem. Erro: " .$phpmail->ErrorInfo;
}
}else{
echo $erros;
}
我想把env.php的echo消息放在警报上,但我真的不知道怎么做,我试着放数据,但是它显示了整个文档(在文本表单上用html)。 有人可以帮帮我吗?
ps:表单位于.html上,而php位于.php
上修改
我试图添加$json = json_encode($erros);
但它不会工作,我怎么能在成功的ajax函数上读到这个? (在警报框上)
我试图添加$ json = json_encode($ erros);但它不会工作,我怎么能在成功的ajax函数上读到这个? (在警报框上)
答案 0 :(得分:0)
env.php
需要仅使用您想要的数据来响应AJAX调用,而不是整个页面。您所要做的就是修改env.php
,使其不具备您不需要的所有HTML内容。
答案 1 :(得分:0)
这就是我的朋友:
jQuery(document).ready(function(){
jQuery('#ajax_form').submit(function(){
var dados = jQuery( this ).serialize();
jQuery.ajax({
type: "POST",
url: "env.php",
data: dados,
success: function( data )
{
var data_output = data;
alert(data_output);
}
});
return false;
});
});