0

jquery/ajaxを使用して、選択したチェックボックスから名前と値を取得したプロジェクトに取り組んでいます。メインページでphpを使用してチェックボックスの名前と値を設定しました。これらの名前を使用して MySQL からプロジェクトを削除できるように、別の php スクリプトで $_POST を使用して名前を抽出したいと思います。

$("#deleteproject").click(function () {
    var names = [];
    $('#projectcheckbox input:checked').each(function() {
        //all checkbox names are put in array
        names.push({name: $(this).attr('name'), value: $(this).val()});
    });
    alert($.param(names));
    return false;
});

上記の alert($.param) は、選択されたチェックボックスを val1.name および val1.value 形式で返します。

//run delete_project.php to erase projects from database
$.ajax({
    type: "post",
    url:"delete_project.php",
    data: names,
    cache: false,
    success:function() {
        alert(names + ' deleted')
    }
});

ここ数日で答えを探しましたが、これを理解するのに助けていただければ幸いです。

4

1 に答える 1

3

私は最初にこのようにhtml部分を使用することを好みます。あなたの場合、それはより柔軟で簡単です。

<input type="checkbox" name="projectcheckbox[]" value="foo_project" />
<input type="checkbox" name="projectcheckbox[]" value="bar_project" />
...

または、最初にデータベースの結果を出力します。

foreach ($projects as $project) {
   print '<input type="checkbox" name="projectcheckbox[]" value="'.$project.'" />';
}

次に呼び出すjQuery.serializeと、次のようなデータが得られます。

projectcheckbox[]=foo_project&projectcheckbox[]=bar_project ...

PHP部分(投稿後);

foreach ((array) $_POST['projectcheckbox'] as $pro) {
   // do something with $pro = foo_project or bar_project etc...
   // THIS PART FOR SECURITY GUYS :)
   // BUT! DO NOT FORGET TO SECURE YOUR DATA ($pro) HERE!!!!!
}
于 2013-02-19T00:28:50.887 に答える