我只是想不出这个。 在PHP中,我创建了动态单选按钮,这些按钮基于从关联数组收集的表单数据进行填充。例如,关联的数组和值为:
数据列表代码:
foreach($_SESSION['items'] as $key=>$value)
{
echo 'The value of $_SESSION['."'".$key."'".'] is '."'".$value."'".' <br />';
}
$ _SESSION ['0']的值是'Ralph'
$ _SESSION ['1']的值是'Cindy'
$ _SESSION ['2']的值是'凯蒂'
接下来我拿数组值创建一个单选按钮数组,要求进行用户比较,如下所示(使用双循环效果很好):
<form name="ranking_submit" action="" method="post">
<?php
echo "<br>";
// compare each array item with each other - one time
$radiocounta = 40;
$radiocountb = 0;
$radiocountc = 80;
$sizeZ=count($_SESSION['items']);
echo "<table>";
for ($i = 0; $i < $sizeZ-1; $i++)
{
for ($j = $i+1; $j < $sizeZ; $j++)
{
$radiocounta += 1;
$radiocountc += 1;
$radiocountb += 1;
echo "<tr><td class='rright ratecell'><div class='big ccenter'>"."<input id='".$radiocounta . "' type='radio' required='required' name='". $radiocountb ."' value= '".$_SESSION['items'][$i]."' />"."<label for='".$radiocounta. "' title='".$_SESSION['items'][$i]."'>".$_SESSION['items'][$i]."</label></div></td><td class='ccenter'>"." vs "."</td><td class='ratecell'><div class='big ccenter'>"."<input id='".$radiocountc . "' type='radio' name='". $radiocountb ."' value= '".$_SESSION['items'][$j]."' />"."<label for='".$radiocountc. "' title='".$_SESSION['items'][$j]."'>".$_SESSION['items'][$j]."</label></div></td>
</tr>";
}
}
echo "</table>";
?>
<input name="ranking_submit" type="submit" value="Rank Them" />
</form>
这将生成以下允许选择的表单代码(html):
<form name="ranking_submit" action="" method="post">
<br><table><tbody><tr><td class="rright ratecell"><div class="big ccenter"><input id="41" type="radio" required="required" name="1" value="Ralph"><label for="41" title="Ralph">Ralph</label></div></td>
<td class="ccenter"> vs </td>
<td class="ratecell"><div class="big ccenter"><input id="81" type="radio" name="1" value="Cindy"><label for="81" title="Cindy">Cindy</label></div></td>
</tr><tr><td class="rright ratecell"><div class="big ccenter"><input id="42" type="radio" required="required" name="2" value="Ralph"><label for="42" title="Ralph">Ralph</label></div></td>
<td class="ccenter"> vs </td>
<td class="ratecell"><div class="big ccenter"><input id="82" type="radio" name="2" value="Katie"><label for="82" title="Katie">Katie</label></div></td>
</tr><tr><td class="rright ratecell"><div class="big ccenter"><input id="43" type="radio" required="required" name="3" value="Cindy"><label for="43" title="Cindy">Cindy</label></div></td>
<td class="ccenter"> vs </td>
<td class="ratecell"><div class="big ccenter"><input id="83" type="radio" name="3" value="Katie"><label for="83" title="Katie">Katie</label></div></td>
</tr></tbody></table><input name="ranking_submit" type="submit" value="Rank Them">
</form>
我需要从无线电选择中获取值,最好是键和值。后来我想计算每个$ _SESSION ['items']的选择数量 - 换句话说,找出每个项目被选中的次数。
我已尝试使用此代码获取初始无线电选择输出,但它似乎不起作用:
<?php
if (isset($_POST["ranking_submit"]) && !empty($_POST["ranking_submit"])) {
foreach($_POST['radiocountb'] as $value){
echo "My values here"."</b>";
echo "<span>selected :<b> ".$value."</b></span>";
}
}
?>
如果我只是回显最后一个$ radiocountb,那么我得到正确的最新计数:
echo $radiocountb ."<br>";
产生最新的计数:3个三个无线电选择。
请帮忙 - 我如何获得$ _SESSION ['项目'的列表,并通过无线电选择适当计算每次选择的次数?
非常感谢您的帮助和考虑。
答案 0 :(得分:0)
对于每个人都很好,我正在使用WOUNDEDStevenJones的建议发布ANSWER问题:
我改变了:
name='". $radiocountb ."'
要:
name='radiocountb[". $radiocountb ."]'
如下:
<form name="ranking_submit" action="" method="post">
<?php
echo "<br>";
// compare each array item with each other - one time
$radiocounta = 40;
$radiocountb = 0;
$radiocountc = 80;
$sizeZ=count($_SESSION['items']);
echo "<table>";
for ($i = 0; $i < $sizeZ-1; $i++)
{
$radiocountb += 1;
for ($j = $i+1; $j < $sizeZ; $j++)
{
$radiocounta += 1;
$radiocountc += 1;
$radiocountb += 1;
echo "<tr><td class='rright ratecell'><div class='big ccenter'>"."<input id='".$radiocounta . "' type='radio' required='required'
name='radiocountb[". $radiocountb ."]' value= '".$_SESSION['items'][$i]."' />"."<label for='".$radiocounta. "' title='".$_SESSION['items'][$i]."'>".$_SESSION['items'][$i]."</label></div></td>
<td class='ccenter'>"." vs "."</td>
<td class='ratecell'><div class='big ccenter'>"."<input id='".$radiocountc . "' type='radio' name='radiocountb[". $radiocountb ."]' value= '".$_SESSION['items'][$j]."' />"."<label for='".$radiocountc. "' title='".$_SESSION['items'][$j]."'>".$_SESSION['items'][$j]."</label></div></td>
</tr>";
}
}
echo "</table>";
?>
<input name="ranking_submit" type="submit" value="Rank Them" />
</form>
改变了无线电阵列的命名方法。
然后,为了获得无线电值,我使用了以下内容:
<?php
$selections= array();
if (isset($_POST['radiocountb'])) {
foreach($_POST['radiocountb'] as $key=>$value){
echo "<span>selected :<b> ".$key." ".$value."</b></span>"."<br />";
$selections[] = $value;
}
}
?>
这就是诀窍。 感谢WOUNDED StevenJones为您提供了有用的评论,以便找到解决方案。