0

チェックボックスを選択してphpを使用して、mysqlデータベースからレコードを取得することができました。選択したレコード (チェックボックス付き) を新しいページに表示するのに苦労しています。これまでの私のコードは次のとおりです。

<?php 
include('connect.php');
$query = 'SELECT * FROM grades'; 

if ($r = mysql_query($query)) {  
    print "<form> 
    <table>"; 
    while ($row = mysql_fetch_array($r)) { 
        print  
            "<tr> 
            <td>{$row['InstitutionName']}</td> 
            <td>{$row['InstitutionAddress']}</td> 
            <td>{$row['SubjectArea']}</td> 
            <td><input type='checkbox' name='check[$row{['GradeID']}] value='check' /></td> 
            </tr>"; 
    } 
    print "</table> 
    </form>"; 

    $checkbox[] = isset($_POST['checkbox']) ? true : false;
} else {  
    print '<p style="color: blue">Error!</p>'; 
}  
?> 

<html>
<form action="check2.php" method="POST">
<input type='submit' name='Submit' value='Submit'>
</html>

選択したレコードを表示するページには、次のものがあります。

<?php
if(isset($checkbox)) 
{ 
    foreach($checkbox as $value) 
    { 
        echo $value."<br>"; //it will print the value of your checkbox that you checked 
    } 
} 
?>

任意の支援をいただければ幸いです!

4

4 に答える 4

0

フォームの印刷機能にいくつかのエラーがあります。アクションを2番目のフォームではなく、最初のフォームに配置する必要があります。チェックボックスの印刷方法も変更する必要があります。次のようにフォームを印刷してみてください。

<?php 
    include('connect.php');
    $query = 'SELECT * FROM grades'; 

    if ($r = mysql_query($query)) {  
        print "

            <form action=\"check2.php\" method=\"POST\">

            <table>"; 

        while ($row = mysql_fetch_array($r)) { 
            print  
                "<tr> 
                     <td>{$row['InstitutionName']}</td> 
                     <td>{$row['InstitutionAddress']}</td> 
                     <td>{$row['SubjectArea']}</td> 
                     <td><input type='checkbox' name='check[".$row['GradeID']."]         value='".$row['GradeID']."' /></td>
                 </tr>"; 
        }

        print "</table>
               <input type='submit' name='Submit' value='Submit'>
               </form>"; 

        $checkbox[] = isset($_POST['checkbox']) ? true : false;
    } else {  
        print '<p style="color: blue">Error!</p>'; 
    }  
?>

そして、_REQUEST配列を読み取るチェックボックスを出力します。

<?php   
    if(isset($_REQUEST["check"])) 
    { 
        foreach($_REQUEST["check"] as $key=>$value) 
        { 
            echo $key."<br>"; //it will print the value of your checkbox that you checked 
        } 
    } 
?>

これは機能するはずです。

于 2012-10-01T14:41:15.300 に答える
0

value="check" と同じように、checked="checked" を入力します。

<td><input type='checkbox' name='check[$row{['GradeID']}] value='check' checked="checked" /></td>

編集:

おそらく私はあなたを誤解しました。あなたは何を見ることを期待していますか?

まず、GET (デフォルト) の代わりに POST リクエストを実行するフォームを作成する必要があります。

print "<form method='POST' action='THE_FILE_YOU_PRINT_RESULTS.php'>"

次に、「THE_FILE_YOU_PRINT_RESULTS.php」で、print_r($_POST);取得した内容と表示方法を確認します。

于 2012-10-01T14:17:46.033 に答える
0
check[$row{['GradeID']}]

私には間違っているようです。

check[{$row['GradeID']}]

開き中かっこが $ の前に移動されていることに注意してください。

これが間違っている場合は申し訳ありませんが、PHPを長い間使用していませんが、私にとっては際立っていました

于 2012-10-01T14:25:24.697 に答える
0

これを行うより良い方法は、チェックボックスに check[] という名前を付けることです。各チェックボックスの値は、(チェックではなく) ID にする必要があります。

次に、結果ページで、check[] の各インスタンスをループして、値を出力します。

于 2012-10-01T14:22:34.397 に答える