0

データベースからデータを正常に抽出できますが、チェックボックス メソッドを使用して特定の行を削除する際に問題が発生しています。

ここの以前の投稿を含むさまざまなチュートリアルを使用しましたが、まだありません。

これが私のコードです:

    <div id="content">

    <h1>Post Bulletin</h1>

    <br />

    <form action="insert.php" method="post">
        <label for="title">Title</label>
            <br />
        <input type="title" name="title" id="file" required="required" placeholder="Bulletin Title" />
        <br />
        <br />
        <label for="bulletin">Bulletin</label>
            <br />
        <textarea id="bulletin" name="bulletin" id="bulletin" rows="10" cols="50" required="required" placeholder="Bulletin Message"></textarea>
        <br />
        <input type="submit" />
    </form>

    <br/ >
    <br/ >

    <h3>Current Bulletin Posts</h3>

    <?php 

        require('connect.php');

        $data = mysql_query("SELECT * FROM bulletins ORDER BY Date_Entered DESC")
            OR die("Can't access bulletins table. " . "<br />". mysql_error());

        while($info = mysql_fetch_array($data)) 
        {                             
            Echo "<br />" . "Delete: " . "<input name='checkbox[]' type='checkbox' id='checkbox'/>" . "<br />" . "<br />";
            Echo $info['Title'] . "<br />" . "<br />";
            Echo $info['Bulletin'] . "<br />" . "<br />";
            Echo "Posted at " . $info['Date_Entered'] . "<br />" . "<br />";
            Echo "<hr>";
        }
    ?>

チェックボックスを作成しましたが、削除を処理できません。

「if isset」ステートメントで十分だと考えるのは正しいですか? チェックボックスの配列に ID を割り当てるにはどうすればよいですか?

4

3 に答える 3

1

行 ID をチェックボックスとして使用しますvalue。これが PHP 側に送信されます。

Echo "<br />" . "Delete: " . "<input name='delete[]' type='checkbox' value='" . $info['id'] . "' />" . "<br />" . "<br />";

ここで、PHP 側では、削除するレコード ID を の配列として受け取ります$_POST['delete']

また、チェックボックスを送信するには、フォーム内にチェックボックスを含める必要があります。

于 2012-05-08T11:58:51.197 に答える
0

まず、チェックボックスはタグ内にある必要があります。

その後、value属性をチェックボックスに設定する必要があります。これは、そのチェックボックスの一意のキーとテーブル行の一意のキーになります。

php を使用してデータを削除している場合は、選択したチェックボックス配列を調べて、すべての配列要素 (つまり、テーブルの一意のキー以外) に対して削除クエリを実行するだけです。

于 2012-05-08T11:57:37.903 に答える
0

EXTJS を使用して、データベースからフェッチされたレコードを表示し、以下のコードを追加するだけで、選択したすべてのチェックボックス行を削除できます。

function delMethod(index)
{
try{
    var rowstoDel=new Array();
    var count=0;
    var recordsToDelete = new Array();
    for (var i=0; i <store2.getCount(); i++){
    var rec=store2.getAt(i);
    if (rec.get("MappingGrid")==index){
    recordsToDelete[recordsToDelete.length] = rec; 
    rowstoDel[count]=i;
    count++;      
    }
    }
for (var i=0; i <recordsToDelete.length; i++){
    store2.remove(recordsToDelete[i]);
    }
for (var j=rowstoDel.length-1;j>=0;j=j-1)
{
myData2.splice(rowstoDel[j],1);
}
}catch(e){alert("unable to delete")}
}
于 2012-05-08T12:01:56.247 に答える