2

ラジオ ボタン フォームからのデータの抽出に問題があります。

次のようになります。

<?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
?>

許可されるオプションは 1 つだけです。誰かが送信したとき、I* はその行から値と対応する名前を取得する必要があります。しかし、私は 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];
 }

現在のコードでは正しい値が返されますが、色名が間違っています。(常に最初のオプション)これを機能させるにはどうすればよいですか?

4

1 に答える 1

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.">
于 2013-03-28T13:08:18.897 に答える