通过AJAX将JavaScript数组转换为PHP
我编写了一个简单的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代码如下所示:通过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
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分钟内将其标记为回答。