0

これが初心者の質問である場合は申し訳ありませんが、私はまだ PHP に慣れていないため、この質問に対する答えが見つかりません。

mySQL テーブルをクエリし、結果から HTML テーブルを作成する php スクリプトがあります。これはすべて正常に機能します。そのスクリプトの一部として、ユーザーが選択した場合にデータベースから特定のレコードを 1 つずつ削除する機会をユーザーに与えるa<td>を eachに追加します。<tr>

これを機能させるには、値の 1 つとして存在する、そのレコードの一意の識別子を php スクリプトに渡すことができる必要があります。問題は、この値を渡す方法がわからないことです。

HTML テーブルを構築する私の php スクリプトは次のとおりです。

    while ($row = mysql_fetch_array($result)) {
        echo 
        "<tr class=\"datarow\">"  .  
            "<td id=\"id_hdr\">"    . $row['id']    . "</td>" .
            "<td id=\"name_hdr\">"  . $row['name']  . "</td>" .

            "<td id=\"btn_delete\">
                 <form action=\"delete_item.php\">
                     <input type=\"image\" src=\"images/delete.png\">
                 </form>
             </td>" .
         "</tr>";
    }

したがって、どういうわけか、「delete_item.php」とともに「id」を明示的に渡すか、php 側でこの値を変数に取り込む方法を見つける必要があります。それを達成できれば、私は家から解放されます。

編集: 以下の両方の提案を実装しようとしていますが、そこに到達できません。これらの提案を読んだ方法に基づいてフォームを更新した方法は次のとおりです。

"<td id='btn_delete'>".
    "<form action='scripts/delete_item.php'>".
        "<img src='images/delete.png'>".
        "<input type='hidden' id='uid' value='" . $row['id']    . "'>".
        "<input type='submit' value='Submit'/>".                            
    "</form>".
"</td>" .

次に、delete_item.php に次のように記述します。

$id = $_POST['uid'];
$sql = "DELETE FROM myTable WHERE id=$id";
$result = mysql_query($sql);
if (!$result) {
    die("<p>Error removing item: " . mysql_error() . "</p>");
}

しかし、実行すると、次のエラーが表示されます。

アイテムの削除中にエラーが発生しました: SQL 構文にエラーがあります。1 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

そして最後にもう 1 つ: このアプローチにより、画像のすぐ下に「送信」という単語が表示されたボタンが表示されます。これはできれば持たないほうがいいです。

再度、感謝します!

4

2 に答える 2

2
<form action=\"delete_item.php\">
<input type=\"hidden\" value=\"$row['id']\" name=\"uid\" >
<input type=\"image\" src=\"images/delete.png\">
</form>

一意の ID は非表示の入力に配置されます。を使用してこの値を取得できます

$_POST['uid']

ただし、フォームを送信する必要があります

<input type=\"submit\" name=\"submit\" value=\"delete\" ">
于 2013-07-01T04:32:06.273 に答える
2

id のパラメータを持つアンカー タグを使用できます。つまり、www.example.com/delete.php?id=20

これで、ページ delete.php でその ID を次のように取得できます。$_GET['id']

それを使用して、テーブルからデータを削除し、ヘッダーを設定して必要なページに戻ることができます

必要に応じて、AJAX で同じロジックを使用でき、ページをリロードせずにそのデータを完全に削除できます。私はAJAXをお勧めします

于 2013-07-01T04:58:34.273 に答える