0

チェック ボックスがたくさんあるページがあります。これらは name="a number" で識別されます。ボタンがクリックされると、チェックされたボックスの数で新しい配列を作成する JavaScript 関数があります。これはページ「test.php」に送信されます。

戻り値:

Array
(
    [data] => [null,"47284","47282","47281","47280","47279","47278","47277","47276","47269"]
)

この配列を分解しようとすると、配列から文字列への変換エラーが発生します。

私は何を間違っていますか?

これらの数値を分離して、それぞれに対して SQL クエリを実行できるようにする必要があります。

JavaScript コード:

<script>
var selected = new Array();

function showMessage() {
var selected = Array();

    $('input:checked').each(function() {
        selected.push($(this).attr('name'));
    });
    var answer = confirm('Are you sure you want to send these emails again?');
    if(answer) {
    var jsonString = JSON.stringify(selected);
    $.ajax({
        url: "../../test.php",
        type: "POST",
        data: {data : jsonString}, 
        success: function(data){
            alert(data);
        }
    })
    }
}
</script>
<SCRIPT language="javascript">
$(function(){

    // add multiple select / deselect functionality
    $("#selectallsent").click(function () {
          $('.yes').prop('checked', this.checked);
    });
    $("#selectallprogress").click(function () {
          $('.no').prop('checked', this.checked);
    });

    // if all checkbox are selected, check the selectall checkbox
    // and viceversa
    $(".yes").click(function(){

        if($(".yes").length == $(".yes:checked").length) {
            $("#selectallsent").prop("checked", "checked");
        } else {
            $("#selectallsent").removeAttr("checked");
        }

    });
    $(".no").click(function(){

        if($(".no").length == $(".no:checked").length) {
            $("#selectallprogress").prop("checked", "checked");
        } else {
            $("#selectallprogress").removeAttr("checked");
        }

    });
});
</script>

test.php コード:

<?
print_r($_POST);
?>

test.php ページでさらに何かを行う必要があることはわかっていますが、それが何であるかを知りたいです。

4

1 に答える 1

0

あなたがする必要がある2つのこと....

最初の 1 つは、選択したオブジェクトを文字列化しないことです (jquery がこれを処理します)。

function showMessage() {
var selected = Array();

    $('input:checked').each(function() {
        selected.push($(this).attr('name'));
    });
    var answer = confirm('Are you sure you want to send these emails again?');
    if(answer) {
    $.ajax({
        url: "../../test.php",
        type: "POST",
        data: {data : selected}, 
        success: function(data){
            alert(data);
        }
    })
    }
}

次に、PHP 側では、次の方法で値にアクセスできます。

print_r($_POST["data"]);

これは入力の配列になります。

于 2013-07-18T15:01:42.680 に答える