获取字符串/数组的初始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 ...
从post:
返回我的数组/字符串$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, )
我错了什么? 谢谢, 安迪
答案 0 :(得分:2)
既然你已经在使用JQuery,那么以JSON格式发送数据会不会更容易,而不是手动将它构建成分隔的冒号/逗号,然后在PHP中手动拆分它?
在您的JS页面中,通过调用sendData()
替换大多数$.toJSON(data);
函数:
function sendData() {
document.data.data.value = $.toJson(data);
document.data.submit();
}
在您的PHP代码中,使用json_decode()
将数据加载到一个数组中,其结构与Javascript中的结构完全相同。
$data=json_decode($_POST['data']);
print_r($data);
*注意:您可能需要一个额外的JQuery插件来获取toJSON()
方法 - 有关详细信息,请参阅http://code.google.com/p/jquery-json/。
答案 1 :(得分:1)