通过ajax和php将字符串保存到服务器上的文件中

时间:2017-04-22 11:45:09

标签: php jquery html ajax

我有一个html + javascript页面,我用它通过用户的“点击”收集数据(用户在给定图像中标记点)。我有一些正在按照我需要的方式创建的数组,我正在尝试使用ajaxphp将这些数组写入服务器端csv文件(按下按钮)。我已经在各个地方查看了这些内容,并且显然遗漏了这些示例中的内容,因为提交操作根本不起作用。

这是将数组转换为单个字符串以写入csv的步骤:

var output = "#name,time,x,y\n";
for( i = 0; i < pointsX.length; i++ ) {
    output += user;
    output += ",";
    output += time[i];
    output += ",";
    output += pointsX[i];
    output += ",";
    output += pointsY[i];
    output += "\n"
}
// alert( output ); // for testing

(注意,当取消注释时,alert行显示字符串,并且它看起来适合我想要的csv文件格式。)

然后有ajax调用将该字符串发送到php文件:

$.ajax({
  type: "POST",
  url: "submit.php",
  data: {output: output},
  dataType: "json"
});

php文件本身:

<?php
$string = $_POST['output'];
$file = "test.csv";
file_put_contents( $file, $string );
?>

我的理解是字符串应该由php文件(位于服务器上,与html文件一起)接收,然后应该接收字符串并将其打印到文件“test.csv”(在此阶段,它将与htmlphp文件位于同一文件夹中。该文件根本没有出现。

我尝试了几种不同的方法,包括使用下面的jQuery来代替ajax上面的$.post( "submit.asp", output );

<?php
$string = file_get_contents('php://input');
$file = "test.csv";
file_put_contents( $file, $string );
?>

我更喜欢这里的语法,但结果是一样的。

我也尝试了这样的php,再次没有输出:

    int interval=1*1000; //specifying interval to check steps
    Handler.postDelayed(mySpeedChecker(),1000);

我对这些语言很陌生,所以我正在拼凑各种来源,但我显然错过了一些东西。

0 个答案:

没有答案