私は単純なJSスクリプトを書いています。これはマウスの位置を配列に保存してから、AJAX経由でphp関数に送ります。それは動作し、受信したデータを保存しますが、問題はそれがどのように保存されているかです。つまり、xとyの位置が正常に出力されることを期待します。[x1、y1]、[x2、y2]、[x3 、y3]、...JavaScript配列をAJAX経由で
しかし、私はこのようなものです: 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:1474;} i:5; ...
JSON形式でエンコードすると、思ったとおりに保存されると思いますが、出力がそのままの理由はわかりません。何か案は?
window.onbeforeunload = function() {
var jsonString = JSON.stringify(tabela);
$.ajax({
type: 'POST',
url: 'process.php',
data: {
text1: jsonString
}
});
}
そして、PHP側はこれです::次のように
JSコードがあるあなたがserialize
機能によって配列が渡さので内容は、ファイルに次のようになります
$text1 = json_decode(stripslashes($_POST['text1'])); $string_data = serialize($text1); file_put_contents("your-file.txt", $string_data);
'JSON_UNESCAPED_SLASHES'でエンコードされ、セキュリティリスクとしてユーザー入力を**決して**シリアル化しない限り、' stripslashes() 'はjson形式ではありません。 – Xorifelse
本当に申し訳ありませんが、それを削除してもまだ期待通りに動作しません... –
@Rafaelは言うように、ファイルに直接ファイルを保存してください: 'file_put_contents(" your-file.txt "、$ _POST [ 'text1']。PHP_EOL); ' – Xorifelse