2

PHP で $_POST を介して配列にアクセスできないのはなぜですか? jQuery $.post メソッドを使用しようとしています。あなたの提案で修正されたコードは次のとおりです。

私のJavaScript:

<script type="text/javascript">
var selectedValues;
var serializedValues;
$("td").click(function() {
$(this).toggleClass('selectedBox');

// map text of tds to selectedValues
selectedValues = $.map($("td.selectedBox"), function(obj) {
        return $(obj).text();

});

serializedValues = JSON.stringify(selectedValues);

// $.post('/url/to/page', {'someKeyName': variableName}); //exemple
$.post('handler.php', 
      {'serializedValues' : serializedValues}, 
      function(data) {
        //debug 
     }
);

});

</script>

私のphp:

<?php
if(isset($_POST['serializedValues'])) {

            var_dump($_POST['serializedValues']);
            $originalValues = json_decode($_POST['serializedValues'], 1);
            print_r($originalValues);

        }


?>
4

2 に答える 2

4

配列を json 文字列にシリアル化する必要があります。

serializedValues = JSON.stringify(selectedValues)

そしてそれをphpに渡します。そして、json_decode でデコードします。

$originalValues = json_decode($_POST['serializedValues'], 1);

http://php.net/manual/ru/function.json-decode.php

于 2012-06-17T13:27:37.870 に答える
2

ちなみに; JavaScriptをもう少し単純なものにリファクタリングすることができます

$("td").click(function() {
    $(this).toggleClass('selectedBox');

    // map text of tds to selectedValues
    var selectedValues = $.map($("td.selectedBox"), function(obj) {
            return $(obj).text();
    });

    // $.post('/url/to/page', {'someKeyName': variableName}); //exemple
    $.post('handler.php', 
          {'serializedValues' : JSON.stringify(serializedValues)}, 
          function(data) {
            //debug 
         }
    );
});
于 2012-06-17T13:34:14.237 に答える