Tôi chỉ muốn lưu một số JSON (được tạo bằng Javascript) trong một tệp trên máy chủ. Nhưng tôi thậm chí không nhận được nó để làm việc với một chuỗi đơn giản:Lưu dữ liệu vào tệp qua Ajax POST và PHP
HTML File:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<style>
#test{
padding:20px 50px;
background:#ccc;
color:#000;
}
</style>
<script>
$(function(){
$('#test').click(function(){
$.ajax({
url: "page.php",
data: {"foo": "bar"},
processData: false,
contentType: 'application/json'
});
});
});
</script>
</head>
<body>
<div id="test">
KLICK
</div>
</body>
</html>
Và file php là một cái gì đó như thế này:
<?php
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w');
fwrite($fh,$_POST['data']);
fwrite($fh,$_POST['foo']);
fwrite($fh,$_POST["foo"]);
fwrite($fh,$_POST[foo]);
fclose($fh);
Không có gì làm việc. Tôi cũng đã thử
$.ajax({
var datatosend="foo bar";
url: "page.php",
data: datatosend,
processData: false
});
Tôi không biết điều gì có thể sai. Tệp txt ở đó sau khi nhấp vào div trong tệp html. Nhưng không có nội dung trong tệp. Nếu tôi chỉ viết $ _POST vào tệp văn bản, tệp có chứa "Array" văn bản, có nghĩa là $ _POST có một số nội dung.
Tôi đã thử cũng loại "POST" và mã với var_export. Không có gì làm việc cho tôi. Đầu ra với var_export là Php $ arr = NULL?> – Jens
Bạn có chắc chắn rằng ' $ _POST ['dữ liệu'] 'chứa dữ liệu thực tế? Bạn cũng có thể muốn bật báo cáo lỗi để xem có bất kỳ ngoại lệ cơ bản nào không ... – Lix
Tôi chắc chắn rằng;) Bạn có ý gì với báo cáo lỗi? Nếu tôi viết 'error_reporting (E_ALL);' vào tập tin php và chỉ cần mở tập tin php trong trình duyệt, nó sẽ báo cho tôi biết 'Thông báo: Chỉ mục không xác định: dữ liệu trong ...' và cứ thế. Nhưng điều đó phải là, bởi vì nếu tôi trực tiếp mở tập tin php $ _POST phải là NULL. – Jens