我正在处理一个自定义调查,该调查由数据库信息动态填充,需要保存为数组。我可以让一切正常工作,除了我想对许多答案使用星级评分系统,而且似乎单选按钮不能像这样工作:
<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个
因此,为了演示我如何使用下面的答案完成此任务,我必须添加作为循环中的第一个迭代。我使用$items = 0;
$items++
向每个循环动态添加一个数字。
为了让它从0开始,我将$items = -1
设置为第一次迭代是0而不是1。希望这是有意义的。
发布于 2019-05-10 02:03:32
是的,它是这样的,因为你的名字是[]
。这是用于数组的。删除它,您将获得不带数组的数组:
<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" />
https://stackoverflow.com/questions/56065144
复制相似问题