有联系表单和提交按钮。 (稍后我将尝试弄清楚如何将该联系表格数据发送到邮件)
现在,我需要将数据转换为php脚本.... 如何将ajax json数据转发到php脚本? 现在我只想通过echo显示通过ajax发送的联系表单数据......
以下是按下提交按钮时触发的完整javascript函数:
function modalForm(){
$('.enquiryForm form').submit(function(e){
e.preventDefault();
change_tock();
console.log("evo ga");
$('.enquiryForm .status').html('');
$('#singlePageBox .modal-footer').html('');
var eForm = $(this),
formData = {
action: eForm.attr('action'),
method: eForm.attr('method')
},
mandatoryFieldNames = 'c_phone,c_email'
;
mandatoryFieldNames = $.map(mandatoryFieldNames.split(','), $.trim);
var formFields = eForm.find('input[required], textarea[required]');
var emptyFields = 0;
formFields.each(function(i,v) {
var item = $(this)
;
if( !item.val() ) {
if( $.inArray(item.attr('name').trim() , mandatoryFieldNames) != -1 ) {
item.addClass('empty_field');
emptyFields++;
}
} else{
item.removeClass('empty_field');
}
});
if( emptyFields !== 0) return false;
globalDebug !== 0 && console.log(formData, eForm);
$.ajax({
type: 'post',//formData.method//,
dataType:'json',
url: 'slanje_poruke.php',//formData.action,
cache: false,
timeout: 50000,
data: eForm.serialize()+'&sent_from='+window.location.hostname
})
.success(function (jqXHR, textStatus){
$('.enquiryForm form').hide();
$('.enquiryForm .status').append('<div class="alert alert-success">'+jqXHR.responseText+'</div>');
$('#singlePageBox .modal-footer').html('<div class="alert alert-success">'+jqXHR.responseText+'</div>');
globalDebug !== 0 && console.log(jqXHR, textStatus);
}).done(function (result) {
globalDebug !== 0 && console.log(result);
})
.fail(function (jqXHR, textStatus) {
$('.enquiryForm .status').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>');
$('#singlePageBox .modal-footer').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>');
globalDebug !== 0 && console.log(jqXHR, textStatus);
})
;
return false;
});
return false;
}
这是简单的php slanje_poruke.php文件内容:
<?php
$ref = $_POST['c_ref'];
$url = $_POST['c_url'];
$remotepagenum = $_POST['remotePageNumber'];
$name = $_POST['c_name'];
$email = $_POST['c_email'];
$phone = $_POST['c_phone'];
$message = $_POST['c_message'];
$sent_from = $_POST['sent_from'];
echo "<script type='text/javascript'>console.log(' ".$email." ');</script>";
?>
现在,当我按下提交按钮时,没有任何反应,只有控制台日志消息出现(&#39; evo ga&#39;)我在此功能启动时设置为测试...但没有显示任何内容php文件......
如何让php脚本获取从ajax发送的数据?谢谢!
答案 0 :(得分:0)
要获取表单内容,请使用jQuery serialize()方法对其进行序列化。这会将表单内容转换为查询字符串,您只需提交数据,$ _POST将包含所有表单数据。