我怎样才能从多个表单中获取值并提交它们?

时间:2009-10-22 14:43:32

标签: php javascript html

我的DIVS里面有几个表格。

我有一个包含文本字段的表单,并且始终可见,这是用户点击“输入”键并提交...

我希望在页面上的其他表单中选择值,并将它们全部一起提交,而不是一个一个地提交,这样我的PHP代码就可以使用“ALL VALUES”并搜索mysql数据库......

这可以通过javascript使用"<form onsubmit>"来调用javascript吗?

任何代码都会受到赞赏......

感谢

4 个答案:

答案 0 :(得分:5)

如果没有一些Javascript hocus-pocus,你就不能。一种形式=一个请求。

可以使用JS来做,你有几个选择。最简单的方法是遍历页面上的所有表单,并基本上将所有输入字段和值复制到一个表单中,然后提交该组合表单。

使用jQuery,它会像这样:

$("form").submit(function() {
    combineAndSendForms();
    return false;        // prevent default action
});

function combineAndSendForms() {
    var $newForm = $("<form></form>")    // our new form.
        .attr({method : "POST", action : ""}) // customise as required
    ;
    $(":input:not(:submit, :button)").each(function() {  // grab all the useful inputs
        $newForm.append($("<input type=\"hidden\" />")   // create a new hidden field
            .attr('name', this.name)   // with the same name (watch out for duplicates!)
            .val($(this).val())        // and the same value
        );
    });
    $newForm
        .appendTo(document.body)  // not sure if this is needed?
        .submit()                 // submit the form
    ;
}

答案 1 :(得分:2)

您需要创建一个脚本,该脚本将从表单中收集数据,并将它们注入唯一可见的表单。只提交一个表单,您不能提交多个表单。 您可以创建多个隐藏字段,也可以在该表单中构建一个隐藏字段,然后使用javascript从各种表单中收集所有数据,然后创建一个JSON字符串,设置隐藏字段的值,然后提交。 / p>

编辑: 假设您有一个隐藏的输入,如下所示:

<input type='hidden' name='hiddenfield' id='hiddenfield' />

您可以使用JQuery执行此操作:

$('#hiddenfield').val('myvalue');

从其他表单中获取值就像调用$('#elementid')一样简单.val()

在表单提交之前。要使用JQuery,请访问jquery网站,下载库并链接它(按照其安装指南)。

答案 2 :(得分:2)

您可以向该表单添加onsubmit,然后使用javascript收集其他值:

<input type="hidden" name="hidden1" id="hidden1" />
<input type="hidden" name="hidden2" id="hidden2" />
<script>
document.getElementById("the_form").onsubmit = function(){
    document.getElementById("hidden1").value = document.getElementById("other-field1").value;
    document.getElementById("hidden2").value = document.getElementById("other-field2").value;
};
</script>

答案 3 :(得分:1)

将整个页面包裹在表单标记中(如果可能),并使用服务器端代码(使用Javascript)来处理业务规则验证。

一种黑客解决方案,但它应该最大限度地减少Javascript“hacks”的必要性,具体取决于您使用javascript的技能水平。