从克隆表单元素获取所有 POST
Posted
技术标签:
【中文标题】从克隆表单元素获取所有 POST【英文标题】:Getting all POST from clone form elements 【发布时间】:2012-01-01 04:57:42 【问题描述】:这是我的小问题:
我有这个代码http://jsfiddle.net/marcelo066/d7ehQ/light/,它是从BrianGlaz 的原始http://jsfiddle.net/B7bgN/10/ 更改而来的。它从表单中克隆了一些部分。我的问题是:如何使用 php 获取此克隆值以将其存储在 mysql 数据库中?只是为了启蒙,我小提琴中的代码是更大形式的一部分,它正在工作。所以我添加了这个克隆部分,我不知道如何从 $_POST 中获取克隆值。有什么想法吗?
【问题讨论】:
请不要在问题标题中写标签...有一个特殊的秘密机制已经这样做了:标签,你已经使用了:) 【参考方案1】:在元素属性名称上使用数组。
更改元素的名称,使name="myname"
和name="myname2"
、name="mayname3"
改为name="myname[0]"
和name="myname[1]"
、name="myname[2]"
。
因此,在$_POST
数组中,$_POST['myname']
数组将是原始值和克隆值,而不是 $_POST['myname']
,$_POST['myname2']
,$_POST['myname3']
。
根据您想要处理的方式,您还可以拥有名称为 name="form[0][myname]"
和其他名称为 name="form[1][myname]"
等的原始元素。最后,原始元素值位于 $_POST['form'][0]
上,其他名称位于$_POST['form'][1]
、$_POST['form'][2]
等
我在这里做了一个小提琴http://jsfiddle.net/regilero/6kd2L/1/ http://jsfiddle.net/regilero/6kd2L/1/
基本上,除了改变我已经改变的 html 部分中处理名称的方式
$(elem).attr('id', $(elem).attr('id') + newNum).attr('name', $(elem).attr('name')+ newNum);
收件人:
var $elem = $(elem);
$elem.attr('id', $elem.attr('id') + newNum);
var ename = $elem.attr('name');
if (ename)
$elem.attr('name',ename.replace('form[0]','form['+newNum+']'));
【讨论】:
【参考方案2】:将表单字段命名为数组元素:
<select name="dormitorios_name[0]"... >
对于克隆人来说,分别制作它
<select name="dormitorios_name[1]"... >
...
<select name="dormitorios_name[2]"... >
因此你可以在你的 php 代码中检查
$i = 0;
do
// save values
$i++;
while (isset( $_POST['dormitorios_name'][$i])
【讨论】:
以上是关于从克隆表单元素获取所有 POST的主要内容,如果未能解决你的问题,请参考以下文章