Php Ajax数据发布
您好,我正在尝试实现一个ajax邀请脚本,该脚本将允许用户邀请他/她的朋友参加该活动。我在网站的其他部分使用了几乎相同的javascript,它们工作得很好,但在这种情况下,它不工作,我确信问题仍然存在,因为javascript部分,因为正如我所说,我使用了几乎完全相同的脚本,它工作得很好,当我发布数据时,它不会发送电子邮件,我的邮件功能工作得很好(在其他页面中,我在没有ajax的情况下也使用了相同的方法,并且可以工作),但我认为javascript部分在这种情况下无法发布数据 顺便说一下,获取隐藏部分中的值没有任何问题 希望你能帮忙 javascript部分:Php Ajax数据发布,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,您好,我正在尝试实现一个ajax邀请脚本,该脚本将允许用户邀请他/她的朋友参加该活动。我在网站的其他部分使用了几乎相同的javascript,它们工作得很好,但在这种情况下,它不工作,我确信问题仍然存在,因为javascript部分,因为正如我所说,我使用了几乎完全相同的脚本,它工作得很好,当我发布数据时,它不会发送电子邮件,我的邮件功能工作得很好(在其他页面中,我在没有ajax的情况下也使用了相同的方法,并且可以工作),但我认为javascript部分在这种情况下无法发布数据 顺便说一下,获取
<script type=\"text/javascript\">
$(document).ready(function() {
$('.error').hide(); //Hide error messages
$('#MainResult').hide(); //we will hide this right now
$(\"#button\").click(function() { //User clicks on Submit button
var js_name = $(\"#name\").val();
var js_message = $(\"#message\").val();
var js_username = $(\"#username\").val();
var js_useremail = $(\"#useremail\").val();
var js_eventname = $(\"#eventname\").val();
if(js_name==\"\"){
$(\"#nameLb .error\").show(); // If Field is empty, we'll just show error text inside <span> tag.
return false;}
if( js_message==\"\"){
$(\"#messageLb .error\").show(); // If Field is empty, we'll just show error text inside <span> tag.
return false;}
var myData = 'postName='+ js_name + '&postMessage=' + js_message + '&username=' + js_username + '&useremail=' + js_useremail + '&eventname=' + js_eventname;
jQuery.ajax({
type: \"POST\",
url: \"invite.php\",
dataType:\"html\",
data:myData,
success:function(response){
$(\"#MainResult\").html('<fieldset class=\"response\">'+response+'</fieldset>');
$(\"#MainResult\").slideDown(\"slow\"); //show Result
$(\"#MainContent\").hide(); //hide form div slowly
},
error:function (xhr, ajaxOptions, thrownError){
$(\"#ErrResults\").html(thrownError);
}
});
return false;
});
$(\"#gobacknow\").live(\"click\", function() {
$(\"#MainResult\").hide(); //show Result
$(\"#MainContent\").slideDown(\"slow\"); //hide form div slowly
//clear all fields to empty state
$(\"#name\").val('');$(\"#message\").val('');
});
$(\"#OpenContact\").live(\"click\", function() {
$(\"#form-wapper\").toggle(\"slow\");
});
});
</script>
与其尝试调试javascript,不如为javascript AJAX帖子提供一种更简单/更简洁的方法:
$.post('invite.php',$('#MyContactForm').serialize(),function(data){
if(data.success){
// all your on success stuff here
alert('success!');
}else{
// show error messages
alert(data.e);
}
},'json');
对于PHP部分,回显JSON响应数组,例如:
$data['success']=false;
$data['e']='Some error';
echo json_encode($data);
为什么要在示例的javascript部分转义引号?因为它位于php部分,如$js=“此处的js部分”;
$.post('invite.php',$('#MyContactForm').serialize(),function(data){
if(data.success){
// all your on success stuff here
alert('success!');
}else{
// show error messages
alert(data.e);
}
},'json');
$data['success']=false;
$data['e']='Some error';
echo json_encode($data);