2016-11-17 6 views
1

ウェブページ上のSQLデータベースから表示されるデータの一括処理機能を実装しようとしています。データをHTML形式にエコーして、ユーザーが任意の数の行を選択してドロップダウンから値を選択して一括処理を実行できるチェックボックス機能を追加しようとしています。選択されたすべての値がデータベースから削除されます。私はちょっと迷っていますが、実行されたアクションボタンが送信されると、選択されたチェックボックス値を取得することになります。私は以下のコードに私の試行を入れました - 私は無効なforeach引数がエラーメッセージを受け取っています。私はそれが私の入力ループと関係があることをかなり確信しています。n個の行のチェックボックス値を取得する

ご協力いただければ幸いです!掲載データの作業を行う前に、

//establish connection to database: 
     require 'DB.php'; 

     $query = mysql_query("SELECT * FROM names", $conn); 
     echo "<tr>"; 

     //echo results while rows of data remain... 
     while ($row = mysql_fetch_array($query)) { 
      echo '<tr><td>' . $row['NAME'] . '</td>'; 
      echo '<td><input type="checkbox" name="checked[' . $row['NAME'] . ']" value="' . $row['NAME'] .'"></td>'; 
     } 

     ?> 
     </tr> 
    </table> 
</div> 
</body> 
</html> 
<? 

if (isset($_POST['perform_action'])) { 

    //check checkbox values 
    foreach ($_POST['checked'] as $check) { 
     echo $check; 
    } 

    //do something with the values 
    if ($_POST['bulk_action'] == 'delete') { 
     echo "you chose to delete"; 
    } 
+0

foreach ($_POST['checked'] as $check) { echo $check; } 

を変更する "にチェック[ '$行[ 'NAME']。'] []"' '余分に気づきます[] ' – Blinkydamo

答えて

0
if (isset($_POST['perform_action'])) { 
$query = mysql_query("SELECT * FROM names", $conn); 
    while ($row = mysql_fetch_array($query)) { 
     if (isset($_POST["checked".$row['NAME']])){ 
      //hear you can do anything to your checked checkbox 

      } 

    } 
    } 
0

、あなたはそれが存在していることを確認する必要があります。あなたのコードで

、あなたはチェックボックスのいずれかを選択せず​​にフォームを送信する場合は、フィールド$_POST['checked']が、その後存在するループを実行しているかどうかを確認する必要があるので、あなたは、無効foreachの引数に与えメッセージに直面するだろう。

だから、名前は= `試し

//check checkbox values 
    if(isset($_POST['checked'])){ 
    foreach ($_POST['checked'] as $check) { 
     echo $check; 
    } 
    } 
関連する問題