2011-10-24 13 views
1

Webページをプログラミングしていて、PHPバックエンドスクリプトにJSONオブジェクトの配列を送信しようとしていました。jQueryでJSONオブジェクトの配列を送信する方法

これは(jQueryのを使用して)私のjavascriptのコードです:、私は、JSONに私のオブジェクトをデコードし、その後入れている。このコードでは

//Grab the array 
    $arrayFromAjax = $_POST['checkbox']; 

    foreach($arrayFromAjax as $aux) { 
     $temp = json_decode($aux, true); 
     $id = $temp['id']; 
     $value = $temp['checked']; 

     //This line doesn't print anything for $id and $value 
     echo "Id: $id | Value: $value<br />"; 

     //This line prints an crazy string, but with right values 
     echo "CHEKBOX[] => $b<br />"; 
    } 

:私はこれを持って

  var toSend = new Array(); 
      $("input[type=checkbox]").each(
       function (indice, item) 
       { 
        var dom = $(item); 
        var domJSON = { 
         id: dom.attr("value"), 
         checked: (dom.attr("checked") == "checked" ? true : false) 
        }; 
        //put object as JSON in array: 
        toSend.push($.toJSON(domJSON));       
       } 
      ); 
      $.ajax({ 
       type:"POST", 
       url: "salvar_escala.php", 
       data: {checkbox: toSend}, 
       success: function(response) { 
        $("#div_salvar").html(response); 
       }, 
       error: function() { 
        alert("Erro"); 
       } 
       } 
      ); 

そしてPHPで

アレイに入れて送信する。私も試してみましたが、オブジェクト(JSONなし)配列にし、その後、配列をJSONに変換し、そのようにそれらを送信します。

  $.ajax({ 
       type:"POST", 
       url: "salvar_escala.php", 
       dataType: "json", 
       data: {checkbox: $.toJSON(toSend)}, 
       success: function(response) { 
        $("#div_salvar").html(response); 
       }, 
       error: function() { 
        alert("Erro"); 
       } 
       } 
      ); 

しかし、この場合には、それは、誤差関数が呼び出されるより悪いです。

答えて

2

あなたは、問題は、あなたが最初にPHPの配列にそれをデコードすることなく、JSON文字列をループしようとしているということであるPHP

<?php 
$checkboxes = json_decode($_POST['checkbox']); 
foreach($checkboxes as $checkbox) { 
    $id = $checkbox['id']; 
    $val = $checkbox['value']; 
    print $id . ': ' . $val; 
} 

で次の操作を行うことができるはずです。

+0

ありがとうございます!私はjson_encode/decodeとちょっと混乱しました! – IPValverde

関連する問題