这里有几个问题涉及类似的主题,但我找不到任何解决我具体案例的问题。
我有一个动态创建<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<div class="a6-expander-wrapper"></div>
<div class="some-other-div"></div>
<iframe title="My-Iframe" src="xx.html"></iframe>
字段和input[type="text"]
字段的脚本。我希望创建的字段生成唯一的名称,最多可添加6个字段。我怎么能用jQuery做到这一点?如何在我的表单的PHP中引用这些新创建的唯一名称?
jQuery的:
input[type="radio"]
答案 0 :(得分:1)
实际上有很多选择。但你要做的最好的事情是:
你的唯一ID必须是时间戳,你可以这样得到它:
var uniqueId = Date.now() | 0;
所以你应该为我所说的所有这些生成一个数组:
var insertedIds = [];
该数组将保留您插入的ID,并应在POST操作中传递给PHP,因此您的代码将是:
var x = 1;
var insertedIds = [];
$(add_button).click(function(e){
e.preventDefault();
if(x < max_fields){
x++;
uniqueId = Date.now() | 0;
$(wrapper).append('
<input type="text" name="name" id="name"/>
<input type="radio" name="'+uniqueId+'_col0" id="attendC" value="cere" />
<input type="radio" name="'+uniqueId+'_col1" id="attendR" value="rece" />
<input type="radio" name="'+uniqueId+'_col2" id="attendB" value="both" />
<input type="radio" name="'+uniqueId+'_col3" id="attendN" value="neit" />
');
insertedIds.push(uniqueId);
}
});
如果您没有使用AJAX将变量发布到PHP,您可以像这样使用它:
$("yourSubmitButton").click(function(){
$("yourForm").append("<input type='hidden' name='insertedIds' value='"+JSON.stringify(insertedIds)+"'/>");
});
如果您使用的是AJAX,可以像这样使用:
$.ajax({
//url,type staff etc.
data:"insertedIds="+JSON.stringify(insertedIds) // and other data
});
这意味着您可以安全地在PHP中获取 id _col0, id _col1 ....
答案 1 :(得分:1)
您可以使用相同的变量x或另一个全局变量:
var x = 1;
$(add_button).click(function(e){
e.preventDefault();
if(x < max_fields){
x++;
$(wrapper).append('\
<input type="text" name="name_0_"' + x + 'id="name"/>\
<input type="radio" name="attend_1_"' + x + 'id="attendC" value="cere" />\
<input type="radio" name="attend_2_"' + x + 'id="attendR" value="rece" />\
<input type="radio" name="attend_3_"' + x + 'id="attendB" value="both" />\
<input type="radio" name="attend_4_"' + x + 'id="attendN" value="neit" />\
');
}
});
这样在PHP中你只需检查名字的第一部分,而最后一部分(来自_number_number)则用于分组。