4

我有一个从 MySQL 数据库填充的可变大小(长度)的表单。有 4 个字段构成用于创建按钮的信息(id、button#、name 和 price)。提交表单后,我想将所有值保存到 MySQl db 并使用成功消息更新页面底部的 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 的新手,所以如果我也能得到一些解释,我相信这将有助于我解决这个问题。

4

3 回答 3

1

希望这可以帮助:

$('form').submit(function() {
    $.post("myfile.php", $(this).serialize(), function(response) {
        console.log(response);
    });
});
于 2012-12-20T14:47:44.577 回答
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;
});

From you question is appears that you can grab the values of the button because you do that elsewhere. Once you are happy with the query string you can use .post as Joe Brown suggested.

于 2012-12-20T15:03:33.233 回答
0

您可以分配变量名称,例如 a00 到 a99、b00 到 b99 等,这些名称在 POST 请求中发送到服务器。然后只需在服务器端检查已设置哪些值,然后进行相应处理。

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

于 2012-12-20T14:50:09.107 回答