将单选按钮输入保存到数组中

我正在处理动态填充数据库信息并需要保存为数组的自定义调查。我可以让一切正常工作,除了我想对许多答案使用星级评分系统,而且单选按钮似乎无法像这样工作:


<input type="radio" name="surveyRating[]" value="1" />

<input type="radio" name="surveyRating[]" value="2" />

<input type="radio" name="surveyRating[]" value="3" />

<input type="radio" name="surveyRating[]" value="4" />

<input type="radio" name="surveyRating[]" value="5" />

因为这个相同的代码有多个实例。这将被保存到一个数组中,以便surveyRating反复使用。如果我单击一组中的单选按钮,它会更改为另一组中的单选按钮。


我读过我可以用复选框来代替。这是最好的选择吗?或者我应该考虑其他选择吗?我希望最终产品的星级为 1-5。不确定我是否可以用复选框来做到这一点。


编辑


好的name="surveyRating[1]",就单选按钮在客户端不冲突而言,使用是有帮助的。但是,它没有按照我现在设置 php 的方式正确保存。这是它当前的保存方式。我需要改变什么才能使[1]工作适当。目前它只保存最后一次迭代。


$new = array();

$ratings = $_POST['surveyRating'];

$count = count( $ratings );

for ( $i = 0; $i < $count; $i++ ) {

  if ( $ratings[$i] != '' ) {

    $new[$i]['surveyRating'] = stripslashes( strip_tags( $ratings[$i] ) );

  }

}

编辑 2


因此,为了演示我如何使用下面的答案完成此操作,我必须添加 [0] 作为循环中的第一次迭代。我正在使用$items = 0; $items++动态向每个循环添加一个数字。


为了使它从 0 开始,我将$items = -1第一次迭代设置为 0 而不是 1。希望这是有道理的。


噜噜哒
浏览 167回答 1
1回答

温温酱

是的,确实如此,因为您的名称带有[]. 那是数组。删除它,你会得到它没有数组:<input type="radio" name="surveyRating" value="1" /><input type="radio" name="surveyRating" value="2" /><input type="radio" name="surveyRating" value="3" /><input type="radio" name="surveyRating" value="4" /><input type="radio" name="surveyRating" value="5" />对于具有多个组的单选按钮,您必须执行以下操作:<!-- Group 1 --><input type="radio" name="surveyRating[1]" value="1" /><input type="radio" name="surveyRating[1]" value="2" /><input type="radio" name="surveyRating[1]" value="3" /><input type="radio" name="surveyRating[1]" value="4" /><input type="radio" name="surveyRating[1]" value="5" /><!-- Group 2 --><input type="radio" name="surveyRating[2]" value="1" /><input type="radio" name="surveyRating[2]" value="2" /><input type="radio" name="surveyRating[2]" value="3" /><input type="radio" name="surveyRating[2]" value="4" /><input type="radio" name="surveyRating[2]" value="5" />
打开App,查看更多内容
随时随地看视频慕课网APP