我正在处理一个自定义调查,该调查将动态填充数据库信息,并且需要另存为数组。我可以使一切正常运行,除了我想对许多答案使用星级评分系统,而且单选按钮似乎无法像这样工作:
<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。希望这是有道理的。
答案 0 :(得分: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" />