我遇到了一个我无法弄清楚的问题。
我正在使用tableDND jQuery add in,它允许我拖放表的行。我想将这些行发送到服务器并将它们上传到mySQL数据库。
我的代码如下,基本上当我到达PHP时,击球变量的第一个元素消失了。有什么想法吗?
所以我有以下javascript:
$('#order').tableDnD({
onDrop: function(table, row) {
var batting = $.tableDnD.serialize();
var id = <?php echo $id;?>;
$.ajax({
type: 'POST',
url: 'update_batting.php',
data: '{ "batting":' + batting + ', "id":'+ id +' }',
dataType: 'json',
});
}
});
以及以下php:
<?php
$batting = json_encode($_POST['order']);
$query = "INSERT INTO test (t) VALUES ('$batting')";
mysql_query($query);
?>
答案 0 :(得分:1)
好的,所以这是我对这一次的粗略猜测,因为我必须尽快...
我认为,因为“数据”被转换为查询字符串,所以它被误读了。 我想你的帖子可能正在读这个:
$_POST['batting'] = 'order[]=110209';
$_POST['order'] = 'order[]=100245&order[]=100007&order[]=100296&order[]=100213&order[]=100071&order[]=100125&order[]=110206&order[]=110205&order[]=100152&order[]=100247&order[]=100329&order[]=100299&order[]=100243';
$_POST['id'] = '662852670';
因为&符号的第一次出现正在终止您的变量。
这可能看起来很愚蠢,但你可以通过用双引号包围“击球”来逃避这整个问题。有效地将其作为字符串包含。
data: '{ "batting":"' + batting + '", "id":'+ id +' }',
这会将您预期的$ _POST ['order']变量更改为“$ _POST ['batting'] 但是,您的数据对象应该像我最初在上面的评论中提到的那样包含。
data: {order: '"' + batting + '"', id:id},
而不是像示例代码中那样将其作为没有键的字符串发送。
在php中尝试var_dump($ _ POST)以查看您获得的所有值...只是出于好奇。
**抱歉所有的修改。我在工作中不断分心......
答案 1 :(得分:-1)
您是否尝试删除'+ batting +'两侧的空格.... 比如'+ batting +'....