0

ループ内の値HTMLから動的にテーブルに行を作成します。各行は行を表し、ID で識別されます。MySQLPHPMySQL

<input type='checkbox'>各行に を配置し、一番下の行に「選択した行を削除」ボタンを配置できるようにしたいと考えています。

私の質問は、選択したチェックボックスをどのようにすべきか、そして- ファイルPOSTでそれらを識別する方法です。PHP

私はフィールドにこのスクリプトを持っていserialize <input type='text'>ます:

function serealizeInputs (input)
    {
        var array = [];
        input.each(function(){ array.push($(this).val()) });
        return array;
    }
var value = serealizeInputs($('.my_input_field'));

チェックボックスに似たものを書くにはどうすればよいですか?

ご覧のとおり、私はこれにまったく慣れていません。さらにコードが必要な場合はお知らせください。

4

2 に答える 2

1

prop 属性を使用して、チェックボックスがオンになっているかどうかを確認できます。ライブデモはこちら

function serializeCheckboxes(input)
    {
        var array = [];
        input.each(function(){ 
            if($(this).prop("checked"))
            {
                array.push($(this).attr("id"))  
            }                
        });
        alert(array);
        return array;

    }​
于 2012-11-16T11:29:58.190 に答える
1

すべてのチェック ボックスを取得するには、:checkedセレクターhttp://api.jquery.com/checked-selector/を使用します。


これを管理するための一般的な手法は、配列演算子を使用して、削除する各行の主キーを配列としてポストすることです。[]

<?php foreach ($rows as $id => $row) : ?>
    <input type="checkbox" name="to_delete[]" value="<?php echo $id ?>" />
<?php endforeach; ?>

削除を管理する PHP コードでは、to_deleteエントリは文字列の配列になります。

foreach ($_POST['to_delete'] as $rowId) {
    // Delete the row from database
}

また、目立たないように!<form>すべての要素をラップする標準要素に依存します<input>jQuery.serializeArrayを呼び出してチェックボックスの配列を取得するだけでよいため、これにより JavaScript コードが大幅に簡素化されます。

$('#form').on('submit', function(e) {
    e.preventDefault();
    var data = $(this).serializeArray();
    // POST an AJAX request with data
    return false;
});
于 2012-11-16T13:44:44.467 に答える