我通过jquery创建字段,有一个问题和2个答案,我需要通过php在发布中收集这些字段。
我按如下方式生成它们:
var length = wrapper.find(".fields").length;
$(wrapper).append('<div class="col-sm-12 fields fields'+ (length+1) +'">\
<label >Pergunta</label>\
<input type="text" value="" name="pergunta'+ (length+1) +'[]">\
<label >resposta 1</label>\
<input type="text" value="" name="resposta1'+ (length+1) +'[]">\
<label >resposta 2</label>\
<input type="text" value="" name="resposta2'+ (length+1) +'[]">\
<input type="text" value="" name="item[]">\
');
有问题的问题是我需要在foreach帖子中收集每个问题的答案。
$size = sizeof($_POST['item']);
for ($i = 0;$i < $size;$i++)
{
echo 'pergunta:' .$_POST["pergunta1"].'<br>';
}
通过这种方式,我知道无法直接设置namedo输入,因为它是动态的。
答案 0 :(得分:0)
您必须按任意索引对它们进行分组,以便可以在后端按索引获取它们的值(我对格式进行了一些更改):
var length = wrapper.find(".fields").length;
$(wrapper).append('<div class="col-sm-12 fields fields'+ (length+1) +'">'+
'<label >Pergunta</label>'+
'<input type="text" value="" name="pergunta['+ (length+1) +']">'+
'<label >resposta 1</label>'+
'<input type="text" value="" name="resposta1['+ (length+1) +']">'+
'<label >resposta 2</label>'+
'<input type="text" value="" name="resposta2['+ (length+1) +']">'+
'<input type="text" value="" name="item['+ (length+1) +']">'
);
假设length=5
,这将输出名称为“ pergunta [6]”,“ resposta1 [6]”,“ resposta2 [6]”和“ intem [6]”的表单输入。
然后您将获得如下所示的值:
// now pergunta, resposta, items etc will by indexed arrays:
foreach($_POST['item'] as $key => $items)
{
echo 'pergunta:' .$_POST["pergunta"][$key].'<br>';
echo 'resposta1:' .$_POST["resposta1"][$key].'<br>';
echo 'resposta2:' .$_POST["resposta2"][$key].'<br>';
}
这不是最干净的方法,但我尝试遵循您的体系结构。
请检查this answer,了解有关为什么我使用jQuery输出多维数组的更多详细信息。
不好意思:我认为您将“项目”用作控件,因此它应该是隐藏的输入。