2012-01-26 23 views
0

PHPで動的に作成される項目のリストを持つフォームがあります。それぞれの項目はidです(要素のIDではなくデータベースIDを意味します)。
各項目には2つのラジオボタン(Good、Bad)があります。
PHPには、すべての項目の配列を取得する方法はありますか、各項目にgood []とbad []とvalue = "id"という名前のチェックボックスを使用しているかのようにGoodの項目があります。複数の項目RadioButtonsグループ

ラジオボタンでこれを行う方法はありますか?

<form action="some.php" method="post"> 
    item 1: <br/> 
    <input type="radio"/>Leave<br/> 
    <input type="radio"/>Delete<br/> 
    item 2: <br/> 
    <input type="radio"/>Leave<br/> 
    <input type="radio"/>Delete<br/> 
</form> 
+0

をあなたのコードだより多くの助け – xdazz

+0

だろう表示問題。私は、コードを記述しようとしましたが、私の質問は、そのような機能を提供する要素の基本的なロジックについてです。 – lvil

+0

あなたのフォームはどのように見えるか? – xdazz

答えて

1

いいえ、チェックボックスのようにすることはできません。

ラジオグループのすべてのname = ""を受け入れ、それらをループする必要があります。フォームを受け入れると、PHPで独自の配列を作成します。

<form> 
<input type="radio" name="question1" value="good" /> Good<br /> 
<input type="radio" name="question1" value="bad" /> bad 
<input type="radio" name="question2" value="good" /> Good<br /> 
<input type="radio" name="question2" value="bad" /> bad 
</form> 

<?php 
$questions = array('question1', 'question2'); 
foreach($questions as $q) { 
    if(isset($_POST[$q])) { 
     switch($_POST[$q]) { 
      case 'good': 
       $good += 1; 
       break; 
      case 'bad': 
       $bad += 1; 
       break; 
      default: 
       // invalid value 
     } 
    } 
} 
+0

あなたはすべてのPOST配列項目を通過することを意味しますか?それはむしろ安全ではないですか? – lvil

+0

提出されたデータの取り扱いに依存します。しかし、要点は、あなたが望むようにラジオのアイテムをグループ化することはできません。 – deed02392

0

あなたは以下のような形を作ることができる:

<form action="some.php" method="post"> 
    <?php foreach ($ids as $i => $id) : ?> 
    item <?php echo $i+1 ?>: <br/> 
    <input type="radio" name="item[<?php echo $id ?>]" value="good"/>Leave<br/> 
    <input type="radio" name="item[<?php echo $id ?>]" value="bad"/>Delete<br/> 
    <?php endforeach; ?> 
</form> 

次にsome.phpで、$_POST['item']はあなたに以下のような配列与えます:

array(
    'item_id1' => 'good', 
    'item_id2' => 'bad', 
    ..... 
) 
関連する問題