传递变量大小的形式

时间:2012-12-20 14:35:44

标签: php javascript jquery ajax

我有一个从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的新手,所以如果我能得到一些解释,我相信它会帮助我解决这个问题。

3 个答案:

答案 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等正在发送到服务器的变量名称。然后只需在服务器端检查已设置的值,然后相应地处理。

这有点粗糙,但它应该有用。