真的不熟悉jQuery。无论如何我可以使用jQuery将表单数据传递给PHP文件吗?
FORM:
<div id="dialog-form" title="Fill in your details!">
<form>
<fieldset>
<label for="name">Name</label>
<input type="text" name="name" id="name"/>
<label for="email">Email</label>
<input type="text" name="email" id="email" value=""/>
<label for="phone">Phone</label>
<input type="phone" name="phone" id="phone" value=""/>
</fieldset>
</form>
这是一个带有jQuery的弹出对话框,并通过以下方式提交:
$("#dialog-form").dialog({
autoOpen: false,
height: 450,
width: 350,
modal: true,
buttons: {
"Sumbit": function() {
//VALIDATES FORM INFO, IF CORRECT
if (Valid) {
$.ajax({
url: 'process-form.php',
success: function (response) {
//response is value returned from php
$("#dialog-success").dialog({
modal: true,
buttons: {
Ok: function() {
$(this).dialog("close");
}
}
});
}
});
$(this).dialog("close");
}
}
}
});
我想要做的是将用户输入的表单数据发送到process-form.php
,在那里它将被处理并作为电子邮件发送(我可以这样做)。只是不确定jQuery方面的事情。它甚至可能吗?
答案 0 :(得分:3)
您可以使用.serialize()
功能
$('yourform').serialize();
您可以这样使用它:
$.ajax({
url: 'process-form.php',
data: $('form').serialize(), // **** added this line ****
success: function (response) { //response is value returned from php
$("#dialog-success").dialog({
modal: true,
buttons: {
Ok: function () {
$(this).dialog("close");
}
}
});
}
});
答案 1 :(得分:2)
是的,你可以使用jQuery .post()
方法,详细here
$.post( "process-form.php", $( "#dialog-form" ).serialize( ) );
答案 2 :(得分:1)
鉴于您当前的代码,最简单的方法是将表单序列化为data属性:
[...]
url: 'process-form.php',
data: $('#dialog-form').serialize()
答案 3 :(得分:0)
你使用$ .ajax就行了,但是你需要实际传递数据,这是你迄今为止没有做过的。你也最好设置'type'。
$( "#dialog-form" ).dialog({
autoOpen: false,
height: 450,
width: 350,
modal: true,
buttons: {
"Sumbit": function() {
//VALIDATES FORM INFO, IF CORRECT
if (Valid ) {
$.ajax({
url: 'process-form.php',
type: "post",
data: {
name: $('[name=name]').val(),
email: $('[name=email]').val(),
phone: $('[name=phone]').val(),
},
success: function (response) { //response is value returned from php
$( "#dialog-success" ).dialog({
modal: true,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
}
});
}
});
$( this ).dialog( "close" );
}
这些变量现在应该可以在PHP脚本中以$ _POST ['name'],$ _POST ['email']和$ _POST ['phone']
的形式提供答案 4 :(得分:0)
如果您使用ajax发送,表单的重点是什么? 现在问题是,通过以下方式获取输入:
var fields = [];
$("#dialog-form form fieldset > input").each(function() {
fields.push( $(this)[0].value );
});
...
$.ajax({
url: 'process-form.php',
data:fields
...