传递可变大小的forms

我有一个可变大小(长度)的表单,从MySQL数据库填充。 共有4个字段构成用于创建按钮的信息(id,按钮#,名称和价格)。 提交表单时,我想将所有值保存到MySQl数据库,并使用成功消息更新页面底部的div。 对于我所有其他页面,我使用了类似的东西……

xmlhttp.open("GET","myfile.php?a="+val1+"&b="+val2+"&c="+val3+"&d="+val4,true); xmlhttp.send(); 

PHP文件保存数据并为div生成消息。 并写入div …

 document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 

这适用于我的所有其他页面,但由于我不知道将有多少字段,我无法对xmlhttp.open语句进行硬编码。

我是ajax和jQuery的新手,并知道必须有一种方法可以轻松地做到这一点,但我一直无法得到任何工作。 我被告知我可以使用它

 $.each($('#yourform').serializeArray(), function() { console.log(" ' + this.value + " " ); }); 

它确实打印出每个表单元素但不确定如何将此信息提供给我的PHP文件以及如何为div生成返回消息。 再次,我是ajax和jquery的新手,所以如果我能得到一些解释,我相信它会帮助我解决这个问题。

希望这可以帮助:

 $('form').submit(function() { $.post("myfile.php", $(this).serialize(), function(response) { console.log(response); }); }); 

这样的事情怎么样? http://jsfiddle.net/r0k3t/e6W3Z/你可以看到你可以添加任意数量的字段,它们都将被转储到qString中。

 $('#yourform').submit(function() { var qString = ""; $('#yourform input[type=text]').each(function() { qString += $(this).attr("id") + "=" + $(this).val() + "?"; }); console.log(qString); return false; }); 

从你那里可以看出问题,你可以抓住按钮的值,因为你在其他地方这样做了。 一旦您对查询字符串感到满意,就可以像Joe Brown建议的那样使用.post。

您可以指定变量名称,例如a00到a99,b00到b99等,它们在POST请求中发送到服务器。 然后只需在服务器端检查已设置的值,然后相应地处理。

它有点粗糙,但它应该工作。