1

我已经查看了有关此问题的其他几个建议,但由于某种原因,我的数据没有被发布。这是我的代码的相关部分:

<input type="button" id="map_submit" value="Map Selection" />
<?php var_dump($_POST); ?>  // display the posted variables

<script type="text/javascript">
    $(document).ready(function(){
        $('#map_submit').click(function(){

            /*  this part is from the slickgrid plugin, in which
             *  selectedData is an array that I want to post to the page
             *  and read via php
             */
            var selectedData = [], selectedIndexes;
            selectedIndexes = grid.getSelectedRows();
            jQuery.each(selectedIndexes, function (index, value) {
                 selectedData.push(grid.getData()[value]);
            });

            $.post("mapper.php", {dataArray: selectedData});
        });
    });
</script>

从我从其他问题中看到的,$.post应该可以。但是,当我单击按钮时,var_dump 没有显示任何内容。作为健全性检查,如果我将其添加到 javascript:

for (var i = 0; i < selectedData.length; i++) {
     document.write(selectedData[i].questionID + "<br />");
}

它将打印questionID我在网格中选择的值(当然是新的空白页)。

4

2 回答 2

2
$.post("mapper.php", {dataArray: selectedData});

这条线很好。我不知道为什么每个人都建议使用 JSON,因为这里没有必要。您可以在不使用 JSON 的情况下正常发布对象/数组。

注意:这不会重新加载页面。它将mapper.php通过 AJAX 发布,因此不会在页面上的任何地方看到任何内容。您需要查看您的开发工具以查看 AJAX 调用返回的内容。

或者,您可以检查 POST 返回的数据。

$.post("mapper.php", {dataArray: selectedData}, function(data){
    console.log(data); // check your console, you should see some output
});
于 2012-06-21T14:50:59.687 回答
1

您必须先序列化对象,然后在服务器上反序列化(大概在 PHP 中),然后才能使用它。

下面的示例(需要 json2.js):

<script type="text/javascript">
    $(document).ready(function(){
        $('#map_submit').click(function(){

            /*  this part is from the slickgrid plugin, in which
             *  selectedData is an array that I want to post to the page
             *  and read via php
             */
            var selectedData = [], selectedIndexes;
            selectedIndexes = grid.getSelectedRows();
            jQuery.each(selectedIndexes, function (index, value) {
                 selectedData.push(grid.getData()[value]);
            });

            $.post("mapper.php", JSON.stringify({dataArray: selectedData}));
        });
    });
</script>

<input type="button" id="map_submit" value="Map Selection" />
<?php var_dump(json_decode($_POST, true)); ?>  // display the posted variables
于 2012-06-21T14:36:19.590 回答