2016-05-11 9 views
1

ここに私のコードがあります。データベースに複数の項目を追加しようとしています。これらの5項目で私の1項目はデフォルトです。項目3をチェックして、データベース項目3の値を0そしてこれが正しくないPHPマルチラジオボタン配列

1として保存する第一項目の値は、私は、項目3がよりチェックされている場合は0

いずれかを教えてください他の値を保存する3保存1とした後、データベースの項目に比べてフォームを送信することを望みます私の仕事の方法

<?php 

if (isset($_POST['action'])) { 
    $prods = count($_POST['prod']); 

    for ($i = 0; $i < $prods; $i++) { 
     $prod = $_POST['prod'][$i]; 
     $default = (!empty($_POST['is'][$i])) ? 1 : 0; 
     mysql_query("INSERT INTO `items` (`prod`, `is_default`)VALUES('{$prod}', '{$default}')"); 
    } 
} 
?> 

<form action="" method="post"> 
    <input type="hidden" name="action" value="add"> 

    <span>Item Name</span> <span style="padding-left:100px">Is default</span> <br> 

    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="1">Item 1<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="1">Item 2<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="1">Item 3<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="1">Item 4<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="1">Item 5<br> 

    <input type="submit" value="Save"> 
</form> 
+1

**警告**:PHPを習得している場合は、[mysql_query](http://php.net/manual/en/function.mysql-query)を使用しないでください。 php)インターフェイス。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。あなたのユーザーパラメータは**適切にエスケープされていません**(http://bobby-tables.com/php)、悪用可能な[SQLインジェクションバグ](http://bobby-tables.com/)があります。 – tadman

答えて

1

まずはチェックボックスを変更してこのような属性:

value="0"value="1"value="2"など

して、フォームの処理中には、このよう$default値を取得:

$default = (isset($_POST['is'][0]) && $_POST['is'][0] == $i) ? 1 : 0; 

だからあなたのコードは次のようにする必要があります:

HTML:

<form action="" method="post"> 
    <input type="hidden" name="action" value="add"> 

    <span>Item Name</span> <span style="padding-left:100px">Is default</span> <br> 

    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="0"> Item 1<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="1">Item 2<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="2">Item 3<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="3">Item 4<br> 
    <input type="text" name="prod[]" value=""> 
    <input type="radio" name="is[]" value="4">Item 5<br> 

    <input type="submit" value="Save"> 
</form> 

PHP:

if(isset($_POST['action'])){ 
    $prods = count($_POST['prod']); 

    for($i=0; $i < $prods; $i++){ 
     $prod = $_POST['prod'][$i]; 
     $default = (isset($_POST['is'][0]) && $_POST['is'][0] == $i) ? 1 : 0; 
     $query = "INSERT INTO `items` (`prod`, `is_default`)VALUES('{$prod}', '{$default}')"; 
     if(mysql_query($query)){ 
      // success 
     }else{ 
      // error 
     } 
    } 

} 

Sidenotes: