加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通过Ajax POST和PHP将数据保存到文件

发布时间:2020-12-16 02:56:36 所属栏目:百科 来源:网络整理
导读:我只想在服务器上的文件中保存一些 JSON(使用 Javascript生成). 但我甚至不能使用简单的字符串: HTML文件: htmlheadmeta http-equiv="Content-Type" content="text/html; charset=utf-8"script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.
我只想在服务器上的文件中保存一些 JSON(使用 Javascript生成).
但我甚至不能使用简单的字符串:

HTML文件:

<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>

而php文件是这样的:

<?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);

没有任何效果.我也试过了

$.ajax({
    var datatosend="foo bar";
    url: "page.php",data: datatosend,processData: false
    });

我不知道会出现什么问题.单击html文件中的div后,txt文件就在那里.但文件中没有内容.如果我只是将$_POST写入文本文件,该文件包含Text“Array”,这意味着$_POST有一些内容.

解决方法

这里几乎没有什么可能出错的.检查您尝试写入的目录的权限.还要确保您的ajax调用正在使用POST方法.

$.ajax({
  url: "page.php",type : 'POST',...
});

如jQuery documentation中所述,type参数设置请求类型POST或GET.

The type of request to make (“POST” or “GET”),default is “GET”.

另一件需要考虑的事情是你实际上并没有编写JSON数据.数据以该格式发送,但当它到达$_POST变量时,它已被转换为数组.你应该尝试做的是将PHP数组写入文件 –

$fh = fopen($myFile,'<?php $arr='.var_export($_POST['data'],true).' ?>');
fclose($fh);

这应该给出一个类似于此的文件 –

<?php
  $arr = array(
    'foo'=>'bar'
  )
?>

如您所见,var_export()函数返回变量的可解析版本.

> var_export()

var_export — Outputs or returns a parsable string representation of a variable

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读