php 数组未正确形成

标签 php javascript arrays

获取字符串/数组的初始 JavaScript:

<script type="text/javascript">
$(document).ready(function() {
    $("#table").tableDnD({
    onDrop: function(table, row){
        var rows = table.tBodies[0].rows;
            var debugStr = "";
            for (var i=1; i<rows.length; i++) {
                debugStr += rows[i].id+":";
                //debugStr += rows[i].id;
            }
        data = debugStr; // colon seperated
        }
    });
});
function sendData()
{
    var packed = ""; // Initialize packed or we get the word 'undefined'
    for (i = 0; (i < data.length); i++) {
    if (i > 0) {
        packed += ",";
        }
    packed += escape(data[i]);
        }
    document.data.data.value = packed;
    document.data.submit();
}
</script>

现在在 PHP 中...

从帖子中返回我的数组/字符串:

$packed = $_POST['data'];
$data = split(":", $packed);
for ($i = 0; ($i < count($data)); $i++) {
  $data[$i] = rawurldecode($data[$i]);
  $data[$i] = str_replace(",", "", $data[$i]);
  $data[$i] = str_replace(":", ",", $data[$i]);
}

从中创建一个数组:

$arrayUpdated = array();
foreach($data as $value) {
    print_r($value);
    $arrayUpdated[] = $value;
    }

返回:

Array ( [0] => 9,8,6,5,4,3,2,15,1,0, ) 

当我期待的时候:

Array ( [0] => 9, [1] => 8, [2] => 6, [3] => 5, [4] => 4, [5] => 3, [6] => 2, [7] => 15, [8] => 1, [9] => 0, ) 

我做错了什么? 谢谢, 安迪

最佳答案

既然您已经在使用 JQuery,那么以 JSON 格式发送数据不是比手动将其构建为冒号/逗号分隔然后在 PHP 中手动拆分更容易吗?

在 JS 页面中,将大部分 sendData() 函数替换为对 $.toJSON(data); 的调用:

function sendData() {
    document.data.data.value = $.toJson(data);
    document.data.submit();
}

在 PHP 代码中,simlpy 使用 json_decode() 将数据加载到与 Javascript 中结构完全相同的数组中。

$data=json_decode($_POST['data']);
print_r($data);

*注意:您可能需要额外的 JQuery 插件才能获取 toJSON() 方法 - 请参阅 http://code.google.com/p/jquery-json/了解更多信息。

关于php 数组未正确形成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4069274/

相关文章:

php - 在 symfony 中执行自定义 SQL

PHP Mysql 按日期排序

javascript - Jest 测试 typescript 文件语法错误 : "interface is a reserved word in strict mode"

javascript - 树莓派上的 node.js 服务器

c - 如何检查数组中的特定值

php - 使用Where语句显示计数为零的记录

php - MySQL 表的字段(结构)是否具有唯一 ID?

javascript - 从 Node 服务器访问js时出错

c# - 数组、堆和栈以及值类型

c++ - 在 C++ 中的数组初始化期间使用数组成员