我有一个从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.name+ '>' + this.value + "</" + this.name + "> " ); });
它会打印出每个表单元素但不确定如何将此信息提供给我的PHP文件以及如何为div生成返回消息。再次,我是ajax和jquery的新手,所以如果我能得到一些解释,我相信它会帮助我解决这个问题。
答案 0 :(得分:1)
希望这会有所帮助:
$('form').submit(function() {
$.post("myfile.php", $(this).serialize(), function(response) {
console.log(response);
});
});
答案 1 :(得分:1)
这样的事情怎么样? 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;
});
从您的问题出现,您可以获取按钮的值,因为您在其他地方执行此操作。一旦您对查询字符串感到满意,就可以使用.post作为Joe Brown建议的。
答案 2 :(得分:0)
您可以在POST请求中分配变量名称,例如a00到a99,b00到b99等正在发送到服务器的变量名称。然后只需在服务器端检查已设置的值,然后相应地处理。
这有点粗糙,但它应该有用。