2016-04-01 15 views
0

私のチェックボックスはwhileループを使って作成されているので、誰にでもIDや名前を付けることができません。 。チェックボックスは、値が1の場合にチェックされ、テーブルの値が0の場合はチェックされません。これはチェックには適していますが、チェックボックスに対応するレコードの値を変更するために使用できません。ここ は私のコードです:PHPで作成されたチェックボックスを使ってデータベース内のレコードを変更するには

<?php 
       if($records === FALSE) { 
        die(mysql_error()); 
       } 

      while($student=mysql_fetch_assoc($records)){ 
       echo "<tr>"; 
       echo "<td>".$student['SID']."</td>"; 
       echo "<td>".$student['Student_Name']."</td>"; 
       if($student['Month_1'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_2'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_3'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_4'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_5'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_6'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_7'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_8'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_9'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_10'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_11'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       if($student['Month_12'] == 1){ 
       echo "<td>"."<input type='checkbox' checked='true'>"."</td>"; 
       }else{ 
        echo "<td>"."<input type='checkbox' checked='false'>"."</td>"; 
       } 
       echo "</tr>"; 
      } 
     ?> 
+1

あなたのチェックボックスのNONEは 'name'属性を持っていますので、フォームが送信されたときには何も送信されません。彼らはまた 'value'属性も持たないので、名前を持っていてもその名前とともに提出するデータがないので、特定のチェックボックスを高繰り返しの' Month_X'ビットのどれかに関連付ける方法はありませんあなたはテストしています。 –

+0

はお役に立ちましたか? [HTML5のチェックボックスをオンまたはオフにする適切な方法は何ですか?](http://stackoverflow.com/questions/12700626/what-is-the-properway-to-check-and-uncheck-a-checkbox -in-html5)。 –

答えて

0

echo "<td>"."<input type='checkbox' checked='true' name='Month_1[".$student['SID']."]'>"."</td>"; 

フォームが送信された後、あなたがキーのマッチング$学生との配列にデータベースの値を変更することができます[「SID」]:私はあなたのような月のフラグと学生証を含む各チェックボックスに名前を追加する必要があります考慮

while($student=mysql_fetch_assoc($records)){ 
    $Month_1 = (!empty($_POST['Month_1'][$student['SID']])) ? 1 : 0; // returns 1 if checkbox was ticked or 0 if it wasn't 
    // get the rest of months 
    // update mysql record with `SID` = $student['SID']] 
} 
+0

28行目のupdate_fees.phpに構文エラー、予期しない '(T_ENCAPSED_AND_WHITESPACE)、識別子(T_STRING)または変数(T_VARIABLE)または数値(T_NUM_STRING)が必要です。チームビューアはありますか?それは私が推測するより簡単だろう...助けてくれてありがとう – rohan510

+0

28行目のコードは何ですか?残念ながら今チームビューアを使用できません –

+0

$ q_m1 = "アップデートbio_fees SET Month_1 = $ Month_1 WHERE SID = $ student ['SID']"; – rohan510

0

まず、ちょうどこのecho "<td><input type='checkbox' checked='false'></td>";(そこ連結の必要がない)ようにそれを書き、

セカンドをこのecho "<td>"."<input type='checkbox' checked='false'>"."</td>";を記述する必要はありません、このリンクを見て:http://php.net/manual/en/function.mysql-fetch-assoc.php

This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.

第3に、のチェックボックスに対応するレコードの値を変更するには " あなたは基本的に送信する必要がありますあなたのサーバー上のあるスクリプト(form - > changeDbEntry.php)にデータをコピーし、そのスクリプトをDBに接続して、必要な作業を行う必要があります。

私はこれがあなたが期待している答えではないことを知っていますが、何が起こっているのかを理解していない解決策は役に立たないのです。だから... ...

アドバイス1:HTMLフォーム、POST/GETリクエストやAJAX(後でヘッダ、WebSocketを、プロトコル...読ん)について読ん

アドバイス2:これをチェックアウト:http://www.php-fig.org/psr/psr-1/

関連する問題