2017-04-27 27 views
-2

これは私の初めてのstackoverflowの質問をするこの質問は私が困惑しています。私はまた、PHPとHTMLの初心者です。どのようにmysqlテーブルのチェックボックスを取得するには?

<body> 
<div class="topnav" id="navbar"> 
<a href ="user_main_page.php"><img style="max-width:32px; margin-top:-3px;" 
src="/image/logo.jpg"></a1> 
<a href="user_main_page.php">Home</a> 
<a class="active" href="user_ordernow.php">Order Now</a> 
<a href='user_menu.php'>Our Menu</a> 
<a href="user_about.php">Who are we?</a> 
<a href="user_contact.php">Contact Us</a> 
<a style = "float:right" href="../login_page.php">Log Out</a> 
</div> 

<div class="tab"> 
<button class="tablinks" onclick="openTab(event, 'Breakfast')" 
id="defaultOpen">Breakfast Menu</button> 
<button class="tablinks" onclick="openTab(event, 'Snacks')">Snacks</button> 
<button class="tablinks" onclick="openTab(event, 'Drinks')">Drinks</button> 
<button class="tablinks" onclick="openTab(event, 'Main')">Main 
Button</button> 
<button class="tablinks" onclick="openTab(event, 
'Checkout')">Checkout</button> 
</div> 

<div id="Breakfast" class="tabcontent"> 
<?php 
    /*declare parameters for $conn*/ 
    $username="root"; 
    $password=""; 
    $database="login"; 

    $con = mysql_connect("localhost", $username, $password); 
    $selectdb = mysql_select_db("login",$con); 

    $result = mysql_query("SELECT * FROM menu where category='1'") 
    or die(mysql_error()); 

    echo "<table border='0' cellpadding='10'>"; 
    echo "<tr> <th>Order</th> <th>ID</th> <th>Product</th> <th>Price ($)</th></tr>"; 
     // loop through results of database query, displaying them in the table 

     while($row = mysql_fetch_array($result)) { 
     echo "<tr>"; // echo out the contents of each row into a table 
     echo '<td><input type="checkbox" value="" name="id[]" />' . '</td>'; />' . '</td>'; 
     echo '<td>' . $row['id'] . '</td>'; 
     echo '<td>' . $row['name'] . '</td>'; 
     echo '<td>' . $row['price'] . '</td>'; 
     echo "</tr>"; 
     } 

echo "</table>"; 
?> 
</div> 
<div id="Snacks" class="tabcontent"> 
    <h3>snacks</h3> 
    <p></p> 
</div> 
<div id="Drinks" class="tabcontent"> 
    <h3>Drinks</h3> 
    <p></p> 
</div> 
<div id="Main" class="tabcontent"> 
    <h3>Main</h3> 
    <p></p> 
</div> 
<div id="Checkout" class="tabcontent"> 
    <h3>Checkout</h3> 
    <p></p> 
</div> 

これは、mysqlデータベースのログインとテーブルメニューに接続されています。コードのPHPセクションで私はデータベースにアクセスし、テーブルにデータベースを表示します。私が持っている問題は、最後にサブミットボタンを押した後、チェックボックスをチェックしています。送信ボタンを押した後、どのチェックボックスにチェックを入れ、その情報を別のmysqlデータベースに保存すればいいですか?現在のレイアウトはそのようなものです。事前に

webpage design - picture

ありがとう!!

+0

チェックボックスはUIアーティファクトです。データベース内でそれらを1対多の関係に変換し、それに応じてテーブルを更新する必要があります。 – duffymo

+3

初心者のための無駄な答え... – VikingCode

+0

あなたはJSを介してページを更新する必要があります - 現実的には、あなたのHTML(ビュー)から検索とストア(CRUD)PHPコードを切り離す必要があります。 JSは、dbと対話するスクリプトへの非同期呼び出しを行い、その結果をフィールドの更新に使用する必要があります。しかし、あなたの能力の範囲を超えている可能性があります。その代わりに、 'while'ループに評価を追加して、誰かがフォームを提出した後で、ページを再描画し、更新されたデータが存在するはずです。 'while'ループで評価が行われると、htmlはデータの現在の状態を反映します。 –

答えて

3

が命名され、HTMLを送信すべてテキストボックスをサーバーに追加しましたが、のみを選択しました。ボタン。通常のボタンやラジオボタンの場合は直感的ですが、チェックボックスの場合は余分な作業が必要です。

あなたの場合、チェックボックスの名前はid[]です。 PHPは配列データのとしてそれが表示されます(?。私は、フォームのメソッドが表示されないか、それが$_GETです)

$_POST['id'][] 

問題は、あなたが知らないということがあります配列キーは選択されたボックスのみを反映するため、1つがチェックされます。

次使用する場合それは良いです:

ある
'<td><input type="checkbox" value="" name="id[' . $row['id'] . ']" … 

、名前の配列のキーにidを置きます。

name=id[3] 
name=id[4] 
name=id[7] 

などの一連の名前を持つことになります。

次に、PHPで、あなたは次のことを実行できます:

if(isset($_POST['id'])) {    // any checked? 
    $ids=array_keys($_POST['id']); // get selected keys 
    foreach($ids as $id) { 
     // process each selected id 
    } 
} 

トリックがある:PHP抽出物中のname="id[…]"

    • プットは、各チェックボックスの名前をキーとしてIDを置きますこれらのキー
  • +0

    あなたの答えをありがとう。それはついに私の問題を解決しました! –

    0

    あなたはJSを介してページを更新する必要があります - 現実的には、あなたのHTML(ビュー)から検索とストア(CRUD)PHPコードを切り離す必要があります。 JSは、dbと対話するスクリプトへの非同期呼び出しを行い、その結果をフィールドの更新に使用する必要があります。

    あなたの能力の範囲を超えている可能性があります。代わりにwhileループに評価を追加して、誰かがフォームを提出してからページを再描画した後、更新されたデータが存在するはずです、そして時に評価がwhileループで行われ、あなたのHTMLが、データの現在の状態を反映している - このような何か(イムは完全にここにJSを無視して):あなたのすべてのフィールドを想定し

    <body> 
    <div class="topnav" id="navbar"> 
    <a href ="user_main_page.php"><img style="max-width:32px; margin-top:-3px;" 
    src="/image/logo.jpg"></a1> 
    <a href="user_main_page.php">Home</a> 
    <a class="active" href="user_ordernow.php">Order Now</a> 
    <a href='user_menu.php'>Our Menu</a> 
    <a href="user_about.php">Who are we?</a> 
    <a href="user_contact.php">Contact Us</a> 
    <a style = "float:right" href="../login_page.php">Log Out</a> 
    </div> 
    
    <div class="tab"> 
    <button class="tablinks" onclick="openTab(event, 'Breakfast')" 
    id="defaultOpen">Breakfast Menu</button> 
    <button class="tablinks" onclick="openTab(event, 'Snacks')">Snacks</button> 
    <button class="tablinks" onclick="openTab(event, 'Drinks')">Drinks</button> 
    <button class="tablinks" onclick="openTab(event, 'Main')">Main 
    Button</button> 
    <button class="tablinks" onclick="openTab(event, 
    'Checkout')">Checkout</button> 
    </div> 
    
    <div id="Breakfast" class="tabcontent"> 
    <?php 
        /*declare parameters for $conn*/ 
        $username="root"; 
        $password=""; 
        $database="login"; 
    
        $con = mysql_connect("localhost", $username, $password); 
        $selectdb = mysql_select_db("login",$con); 
    
        $result = mysql_query("SELECT * FROM menu where category='1'") 
        or die(mysql_error()); 
    
        echo "<table border='0' cellpadding='10'>"; 
        echo "<tr> <th>Order</th> <th>ID</th> <th>Product</th> <th>Price ($)</th></tr>"; 
         // loop through results of database query, displaying them in the table 
    
         while($row = mysql_fetch_array($result)) { 
         echo "<tr>"; // echo out the contents of each row into a table 
         echo '<td><input type="checkbox" value="" name="id[]" '. ($row['selected'] ? .' checked=true '. : .''.).' />' . '</td>'; />' . '</td>'; 
         echo '<td>' . $row['id'] . '</td>'; 
         echo '<td>' . $row['name'] . '</td>'; 
         echo '<td>' . $row['price'] . '</td>'; 
         echo "</tr>"; 
         } 
    
    echo "</table>"; 
    ?> 
    </div> 
    <div id="Snacks" class="tabcontent"> 
        <h3>snacks</h3> 
        <p></p> 
    </div> 
    <div id="Drinks" class="tabcontent"> 
        <h3>Drinks</h3> 
        <p></p> 
    </div> 
    <div id="Main" class="tabcontent"> 
        <h3>Main</h3> 
        <p></p> 
    </div> 
    <div id="Checkout" class="tabcontent"> 
        <h3>Checkout</h3> 
        <p></p> 
    </div> 
    
    関連する問題