我的DIVS里面有几个表格。
我有一个包含文本字段的表单,并且始终可见,这是用户点击“输入”键并提交...
我希望在页面上的其他表单中选择值,并将它们全部一起提交,而不是一个一个地提交,这样我的PHP代码就可以使用“ALL VALUES”并搜索mysql数据库......
这可以通过javascript使用"<form onsubmit>"
来调用javascript吗?
任何代码都会受到赞赏......
感谢
答案 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的技能水平。