0

現在、メニュー項目を表示するテーブルがあり、管理者が特定の項目を削除および編集できるようにしたいと考えています。私のdelete.phpコードは、IDが特定の番号に等しい場合に正しく機能しますが、IDを削除ボタンがある行のIDと同じにしたいので、私の質問はそのID番号を取得するにはどうすればよいですか? 私が今やっていることは正しくないからです。

ここに私のdelete.phpファイルがあります:

<?php 
$con = mysql_connect("localhost", "root", "");
if(!$con)
    {
    die('Could not connect: ' .mysql_error());
    }
mysql_select_db("bics_place", $con);

echo "mysql connected";

$myid = $_POST['id'];

$sql = "DELETE FROM menu WHERE id='$myid'";

echo "sql = $sql";

if(!mysql_query($sql, $con))
    {
    die('Error: ' .mysql_Error());
    }
echo "1 record deleted";
header("location:admin_menu.php");

mysql_close($con);

?>

これは admin_menu.php で作成されているテーブルです

            $result = mysql_query("SELECT * FROM menu");

            echo "<table border='1' id='menu'>
            <form method='post' action='delete.php'>
            <tr>
            <th> Id </th>
            <th> Type </th>
            <th> Product Name </th>
            <th> Price </th>
            <th></th>
            <th></th>
            </tr>";


            while($row = mysql_fetch_assoc($result))
              {
              echo "<tr>";
              echo "<td>" . $row['id'] . "</td>";
              echo "<td>" . $row['type'] . "</td>";
              echo "<td>" . $row['productName'] . "</td>";
              echo "<td>" . $row['price'] . "</td>";
              echo "<td>" . '<input type="submit" name="delete" value="Delete">' . "</td>";
              echo "<td>" . '<input type="submit" name="edit" value="Edit">' . "</td>";
              echo "</tr>";
              }
            echo "</form>";
            echo "</table>";
4

2 に答える 2

1

フォームの非表示フィールドを取得します。送信する前に、onclick イベント セット ID を非表示フィールドに設定します。

<script>
function setId(idValue){
    document.getElementById('myid').value=idValue;
}
</script>
echo "<table border='1' id='menu'>
            <form method='post' action='delete.php'>
            <input type="hidden" name="id" id="myid" value="" />
            <tr>
            <th> Id </th>
            <th> Type </th>
            <th> Product Name </th>
            <th> Price </th>
            <th></th>
            <th></th>
            </tr>";


            while($row = mysql_fetch_assoc($result))
              {
              $myID = $row["id"];

              echo "<tr>";
              echo "<td>" . $row['id'] . "</td>";
              echo "<td>" . $row['type'] . "</td>";
              echo "<td>" . $row['productName'] . "</td>";
              echo "<td>" . $row['price'] . "</td>";
              echo "<td>" . '<input type="submit" name="delete" value="Delete" onClick="setId('.$myID.');">' . "</td>";
              echo "<td>" . '<input type="submit" name="edit" value="Edit">' . "</td>";
              echo "</tr>";
              }
            echo "</form>";
            echo "</table>";
于 2012-10-10T17:57:50.930 に答える
0

非表示フィールドを追加します - id をフォームに:

 while($row = mysql_fetch_assoc($result)) {
    //your <td>'s here

           echo '<input type="hidden" name="id" value="{$row[id]}">';
    // echoes for form submit
 }

注 : mysql_* 関数は非推奨です。代わりに mysqli_ 関数を使用する必要があります。ここを読む

于 2012-10-10T17:55:35.957 に答える