Php Jquery提交Ajax
我似乎无法让这一切正常运作。我正在尝试使用jquery对话框提交表单,我想用php接收表单,这样我就可以使用$\u POST了 有什么想法吗 HTML: PHP:Php Jquery提交Ajax,php,jquery,ajax,post,submit,Php,Jquery,Ajax,Post,Submit,我似乎无法让这一切正常运作。我正在尝试使用jquery对话框提交表单,我想用php接收表单,这样我就可以使用$\u POST了 有什么想法吗 HTML: PHP: 对话框将正确打开,但按下“发送”按钮时不会执行任何操作,也不会在控制台上显示任何错误。你知道这个错误吗?我是jquery的新手。您只是用代码添加了一个提交处理程序$(“#fieldsform”)。提交(…),这样它就不会触发任何东西 相反,您应该在文档就绪时执行此操作,并在“发送”按钮的单击处理程序中,调用$(“#fieldsform
对话框将正确打开,但按下“发送”按钮时不会执行任何操作,也不会在控制台上显示任何错误。你知道这个错误吗?我是jquery的新手。您只是用代码添加了一个提交处理程序
$(“#fieldsform”)。提交(…)
,这样它就不会触发任何东西
相反,您应该在文档就绪时执行此操作,并在“发送”按钮的单击处理程序中,调用
$(“#fieldsform”).submit()
$(“#fieldsform”).submit(函数(事件){
将submit
事件处理程序添加到#fieldsform
。也许您应该删除此行(以及相关的};
尝试使用event.preventdefault()内部字段窗体submit@Sumeet我试过了,但没有改变anything@Regent我不明白你的想法。删除ajax并只使用submit()?它不使用$\u POST,而是用数据构建url。我已经尝试过了。给我一些类似tables/create?fields=4的东西,我不想要。所以你说要构建$('#fieldsform')。submit(…)在对话框外,然后在按钮处调用它:“发送”:$(“#fieldsform”).submit();对吗?@user3718566 yes。不要忘记在submit handler函数的末尾添加return false
,以防止默认表单
行为(如果您当然想防止)。是的。如果您将它放在“发送”中回调函数,每次单击“发送”时,它都会将新的“提交”处理程序附加到表单。这有点让人困惑:.submit()
将提交,而.submit(回调函数)
只是附加了处理程序。我已经尝试过了,但仍然不起作用。还有其他想法吗?它甚至没有在控制台上给我任何错误。第一次使用JSFIDLE。似乎无法在那里运行它。
<div id="table_rows_form">
<form id="fieldsform" action="system/create">
<label for="fields">How many fields are needed?</label>
<input type="text" id="fields" name="fields" />
<button type="submit">Submit</button>
</form>
</div>
$(document).ready(function() {
$('#table_rows').on('click', function() {
$('#table_rows_form').dialog({
open: function() {
$(this).find('[type=submit]').hide();
},
draggable: true,
modal: true,
resizable: false,
closeOnEscape: false,
width: 'auto',
minHeight: 235,
title: 'Number of Fields',
dialogClass: 'no-close',
buttons: {
"Send": function() {
$('#fieldsform').submit(function(event) {
var formData = {
'fields': $('input[name=fields]').val()
};
$.ajax({
type: 'POST',
url: $('#fieldsform').attr('action'),
data: formData,
dataType: 'json',
encode: true
});
});
},
"Cancel": function() {
$(this).dialog('close');
}
}
});
return false;
});
});
print_r($_POST);