单选按钮数组获取选定值和相关内容(相同ID隐藏元素)

时间:2013-03-28 10:59:50

标签: php arrays foreach

我在从单选按钮表单中提取数据时遇到问题。

看起来像这样:

<?php
## color
$stripe = 1;
$att_color=mysql_query("SELECT * FROM product_attributes WHERE products_id ='".$row['products_id']."' AND att_head='colors' AND att_show='1' ORDER BY att_order asc");
if(mysql_num_rows($att_color)!=0)
{
echo "
<table>
  <tr>
    <td width=\"90%\" align=\"left\" bgcolor=\"#EDEDED\">Color</td>
<td width=\"10%\" align=\"center\" bgcolor=\"#891531\">
<a href=\"#2\" title=\"Yta / Behandling\"><img src=\"images/info.png\"></a>
</td>
</tr>";

while($color_row=mysql_fetch_array($att_color)){
  if ($color_row['att_standard'] == 1) { $standard = "checked"; }
echo "
<tr class=".(($stripe++%2==1) ? 'odd' : 'even').">
  <td colspan=\"2\" width=\"100%\">
<input name=\"color_name[]\" value=\"".$color_row['att_name']."\" id=\"".$color_row['att_order']."\" type=\"hidden\" />
<input type=\"radio\" name=\"color_selected[]\" id=\"".$color_row['att_order']."\" value=\"".(round($color_row['att_val']*0.85))."\" ".$standard.">
<img src=\"images/colors/".$colorimg."\"> &nbsp;".$color_row['att_name']."</td>
 </tr>";
unset($standard); }
echo "</table>"; }
# END color
?>

只允许一个选项。 当某人点击提交时,我需要从该行获取值和相应的名称。 但是我似乎无法想出foreach语法。

if( isset($_POST['submit']) ) {   
    $c_selected = $_POST['color_selected'];
    $c_name = $_POST['color_name'];
    foreach($c_selected as $key => $n) {
    echo "<br><br>". $c_selected[$key] ." ".$c_name[$key];
 }

当前代码为我提供了正确的值,但错误的颜色名称。 (总是第一选择) 我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

这是破产:

<input type=\"radio\" name=\"color_selected[]\" id=\"".$color_row['att_order']."\" value=\"".(round($color_row['att_val']*0.85))."\" ".$standard.">

 name=\"color_selected[]\" should not be an array. 

而不是

 name=\"color_selected\" will provide the chosen color.

因此,单选按钮的值应该是颜色,而不是项目的成本。 您应该使用项目的值创建另一个隐藏字段,除非每种颜色的价格不同。

我认为问题更复杂,因为您尝试发送订单数组而不是简单的表单或其他内容。如果是这种情况,也许你必须重新考虑你这样做的方式。

您似乎有一个产品ID字段,它应该对每种颜色都是唯一的,并且可以在另一侧使用以获取数据库中的所有数据值。

<input name=\"att_order\"
       value=\"".$color_row['att_order']."\" 
       type=\"hidden\" />
<input type=\"radio\" 
       name=\"color_selected\" 
       value=\"".$color_row['products_id']."\" 
       ".$standard.">