0

私は ajax と jquery を使用して送信するこのフォームを持っています。まあ、いくつかの値を取得するこの複数のチェックボックスがあります。

チェックボックスの値がデータベースに投稿されていないため、ここでエラーが発生しています..html/php部分は次のとおりです。

  while($row = mysql_fetch_assoc( $result )) {
    echo '<input type="checkbox" value="'.$row['regione'].'" id="regioni_gestite_ag" name="regioni_gestite_ag[]">' . $row['regione'] . '<br>';
    }

これは私がjavascriptでそれを取得する方法です:

var js_regioni_gestite_ag = $('input:checkbox[name=regioni_gestite_ag]:checked').val();

値をエコーすると、未定義になります...なぜそうなのですか?

4

3 に答える 3

3

name属性を正しく指定していないためです。セレクターは

$('input[name="regioni_gestite_ag[]"]:checkbox:checked')

ただし、最初.val()に一致した要素の値のみを返すため、すべてが機能するわけではありません(したがって、最初のチェックボックスにのみ適用されます)。

最後に、PHP コードは同じid属性を持つ複数の要素を生成します。これは違法な HTML であり、ランダムな jQuery や DOM API が正しく機能しなくなります。これは、おそらくid完全に削除することによって、すぐに修正する必要がありますか?

更新:すべてのチェックボックスの値を配列として取得するには、使用できます

var values = $.makeArray($('input[name="regioni_gestite_ag[]"]:checkbox:checked')
                          .map(function() { return $(this).val() }));
于 2012-09-21T12:11:51.913 に答える
0

次のように、セレクターで始まる( ) を試してください。^=

var js_regioni_gestite_ag = $('input:checkbox[name^=regioni_gestite_ag]:checked').val();
于 2012-09-21T12:12:14.340 に答える
0

これを試して:

var js_regioni_gestite_ag = [];//[name="regioni_gestite_ag[]"]
if($('input[name="regioni_gestite_ag[]"][type=checkbox]:checked').length){
    // check if any checkboxes are checked
    $('input[name="regioni_gestite_ag[]"][type=checkbox]:checked').each(function(o){
        // get their values
        js_regioni_gestite_ag.push($(this).val());
    });
}

// clears all selected checkboxes
function clearSelection() {
    $('input[name="regioni_gestite_ag[]"][type=checkbox]:checked').each(function(o){
        $(this).removeAttr('checked');
    });
}

お役に立てれば。

于 2012-09-21T12:28:09.427 に答える