Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过AJAX将JavaScript数组转换为PHP_Javascript_Php_Ajax - Fatal编程技术网

通过AJAX将JavaScript数组转换为PHP

通过AJAX将JavaScript数组转换为PHP,javascript,php,ajax,Javascript,Php,Ajax,我编写了一个简单的JS脚本,将鼠标位置保存在一个数组中,然后通过AJAX将其发送到php函数。它工作,并保存接收到的数据,但问题是如何保存,即我希望x和y位置的正常输出为:[x1,y1],[x2,y2],[x3,y3] 但我得到的是这样的东西: a:63:{i:0;a:2:{i:0;i:527;i:1;i:1010;}i:1;a:2:{i:0;i:490;i:1;i:1205;}i:2;a:2:{i:0;i:588;i:1;i:1311;}i:3;a:2:{i:0;i:615;i:1;i:136

我编写了一个简单的JS脚本,将鼠标位置保存在一个数组中,然后通过AJAX将其发送到php函数。它工作,并保存接收到的数据,但问题是如何保存,即我希望x和y位置的正常输出为:[x1,y1],[x2,y2],[x3,y3]

但我得到的是这样的东西: a:63:{i:0;a:2:{i:0;i:527;i:1;i:1010;}i:1;a:2:{i:0;i:490;i:1;i:1205;}i:2;a:2:{i:0;i:588;i:1;i:1311;}i:3;a:2:{i:0;i:615;i:1;i:1368;}i:4;a:2:{i:0;i:553;i:1;i:1475;}

我想如果我把它编码成JSON格式,它会像我想的那样保存,但我不明白为什么输出是这样。有什么想法吗

JS代码如下所示:

window.onbeforeunload = function() {
  var jsonString = JSON.stringify(tabela);
    $.ajax({
        type: 'POST',
        url: 'process.php',
        data: {
            text1: jsonString
        }
    });
}
PHP方面是这样的: $text1 = json_decode(stripslashes($_POST['text1'])); $string_data = serialize($text1); file_put_contents("your-file.txt", $string_data); $text1=json_解码(带斜杠($_POST['text1']); $string_data=serialize($text1); 文件内容(“your file.txt”,$string\u数据);

文件中的内容如下所示,因为您通过
序列化
函数传递了数组。要“解码”文件内容,请使用
取消序列化

如果你想有更多的人类可读的文件内容,只需将JSON字符串存储在文件中(
$\u POST['text1']
直接),或者在调用
文件内容之前再次使用
JSON\u encode
,而不是
序列化
一种json格式,除非使用
json\u UNESCAPED\u斜杠编码,而且永远不会序列化用户输入,因为这是一种安全风险。是的,对不起,但即使我删除了它,它仍然不能像预期的那样工作……正如@Rafael所说,只需将其直接存储到文件中:
文件内容(“your file.txt”,“$\u POST['text1'].PHP\EOL)
谢谢你,你的助手帮助了我。@TadejBogataj如果有帮助,请礼貌地投票,你可以在提问后15分钟内将其标记为回答。