0

私はウェブとスタックを検索していましたが、私の問題を解決する方法が見つからなかったので、誰かが私を助けてくれることを願っています。 「1,3,5,7」のような配列として、ajaxを使用してphpコードに値を送信します

ここに私のコードがあります:

<form id="ShopItemForm" class="ShopItemForm" method="post" name="ShopItemForm">
    <input class="ShopItem" checked="checked" name="ShopeItem[]" id="1" value="1" type="checkbox">1
    <input class="ShopItem" name="ShopeItem[]" id="2" value="2" type="checkbox">2
    <input class="ShopItem" checked="checked" name="ShopeItem[]" id="3" value="3" type="checkbox">3
    <input class="ShopItem" name="ShopeItem[]" id="4" value="4" type="checkbox">4
    <input class="ShopItem" name="ShopeItem[]" id="5" value="5" type="checkbox">5

    <input name="submitShopItem" value="submit" class="button button-push" id="submitShopItem" type="submit">
</form>

    $(function() {
    $("#submitShopItem").click(function(e) {
                    e.preventDefault();
                    // put all checked box to array checkedArray
                    var shopItem = 
                    $("#shop-item-Loader").html('');
                    $("#shop-item-Loader").html('load');
                    $.ajax({
                            type: "POST",
                            url: "checked.php",
                            data: "act=shopItem&ShopItem="+checkedArray,
                            cache: false,
                            success: function(html){
                                alert(checkedArray);
                                $("#shop-item-Loader").html('');
                                $("#shop-item-Loader").append(html);
                            }
                    });
                });
            });

カンマ区切りの文字列のように、新しいチェック済みの値をすべて ajax ページに送信したい

4

2 に答える 2

1

これを参照してください:http://jsfiddle.net/Q2Kdt/

 $(function () {
 $("#submitShopItem").click(function (e) {
     e.preventDefault();
     var result = "";
     $('input[type=checkbox]').each(function (e) {
         if ($(this).is(':checked')) result = result + $(this).val() + ", ";
     });
     alert(result);
 });
 });

または、名前自体で確認してください:http: //jsfiddle.net/Q2Kdt/2/

$(function () {
 $("#submitShopItem").click(function (e) {
     e.preventDefault();
     var result = "";
     $("input[name*='ShopeItem[]']").filter(':checked').each(function (e) {
        result = result + $(this).val() + ", ";
     });
     alert(result);
 });
});
于 2013-01-20T12:02:11.600 に答える
1
var checkedArray = $("#ShopItemForm").find(":checked").map(function() {
    return this.value;
}).get();

console.log(checkedArray);


@DavidThomasと質問の最後の文で提案されているように編集:チェックされた要素のコンマ区切りの文字列を取得するには、呼び出す必要があり.join()ますcheckedArray

checkedArray.join();

ここのように使うと

data: "act=shopItem&ShopItem="+checkedArray,

それは自動的に行われます

于 2013-01-20T12:03:38.983 に答える