2015-04-21 85 views
-3

我有一个形式类似这样PHP:获取表单输入

<input type="text" name="question[]" /> 
    <input type="text" name="answer[]" /> 
    <input type="text" name="answer[]" /> 
<input type="text" name="question[]" /> 
    <input type="text" name="answer[]" /> 
    <input type="text" name="answer[]" /> 
    <input type="text" name="answer[]" /> 

*用户可以添加或删除动态输入。

我已经厌倦了

foreach($_POST['question_title'] as $question_key=>$question_title){ 
    echo $question_title.'<br>'; 
    foreach($_POST['answer_title'] as $answer_key=>$answer_title){ 
     echo $answer_title.'<br>'; 
    } 
} 

,但我得到

question 1 
answer 1 
answer 2 
answer 3 
answer 1 
answer 2 

question 2 
answer 1 
answer 2 
answer 3 
answer 1 
answer 2 

,但我想代码输出

question 1 
answer 1 
answer 2 
answer 3 


question 2 
answer 1 
answer 2 

*结果是输入值。

在此先感谢。

更新:感谢downvote,这是一个伟大的社区。我经过许多研究并发布了我的代码后来到这里。谢谢你的stackoverflow。

+0

这种分组也是可能的,其中一个可能的答案可能取决于你如何动态创建问题集,你也可以发布该部分 – Ghost

+0

@鬼动态问题集与上面的代码相同,可以添加多达问答。没有编号索引 – bekman

回答

0

问题/答案具有相同的名称。你必须给他们不同的名字,否则PHP将无法告诉你哪些答案与哪些问题有关。

当您添加一个提问/回答,请确保它的名字是沿着 “answer[question_id/index][]” 东西线或 “question[id]

1

尝试:

<input type="text" name="question[1]" /> 
    <input type="text" name="answer[1][]" /> 
    <input type="text" name="answer[1][]" /> 
<input type="text" name="question[2]" /> 
    <input type="text" name="answer[2][]" /> 
    <input type="text" name="answer[2][]" /> 
    <input type="text" name="answer[2][]" /> 

然后

foreach($_POST['question_title'] as $question_key=>$question_title){ 
    echo $question_title.'<br>'; 
    foreach($_POST['answer_title'][$question_key] as $answer_key=>$answer_title){ 
     echo $answer_title.'<br>'; 
    } 
} 
+0

我也是这样做的,但是你需要创建一个动态的javascript函数来创建添加新的行,它引入了编号索引 – Ghost

+0

我试过同样的东西,不想每次都更新整个索引输入被删除 – bekman