我想列出每个问题的四个问题和四个选项。我已成功使用foreach循环获取问题但是,单选按钮似乎不适用于foreach循环。
例如:……
一个更简化的答案
foreach($quizList as $key => $list){ ?> <form> <input type="radio" id="radio-button-1" name="answer[<?php echo $key;?>]" value="<?php echo $list->option_A ?>"> <!-- answer_0 --> <input type="radio" id="radio-button-1" name="answer[<?php echo $key;?>]" value="<?php echo $list->option_B ?>"> <!-- answer_0 --> </form>
然后在PHP中你应该得到这样的东西:
$_POST['answer'] = [ '0' => 'foo' //'1' => 'biz' .... ];
的 使用Ajax 强>
带编号键的一个注释。如果您使用AJAX(如果不是,您基本上可以忽略这一点),您在转换到JSON和从JSON转换时可能会丢失数字索引,例如我们期望这样:
$_POST['answer'] = [ '0' => 'foo' '2' => 'biz' .... ];
当它在Json中编码时,它可能会像这样(键在哪里)
'{"answer":["foo", "biz"]}`
然后,当PHP转换回来时,我们丢失了密钥。我们会有这样的事情:
$_POST['answer'] = [ 0 => 'foo' 1 => 'biz' .... ];
对于不保留键的任何数组函数也是如此, sort 这里简单的解决方案就是在密钥前加上类似的东西 a 要么 _ 甚至。然后它们将成为字符串并转换为JSON中的对象。在PHP中你仍然可以这样匹配:
sort
a
_
if("a$id" == $post_id){} if(substr($post_id,1) == $id){} //remove all prefixes print_r(array_combine(preg_replace('/^a/', '', array_keys($answers)),$answers)); //it feels wrong but if you have to append you can do this var_dump((int)'2a' == 2); //true so your key would be 2a because how PHP converts strings to ints.
等等。
希望能帮助到你!