我有一个html + javascript页面,我用它通过用户的“点击”收集数据(用户在给定图像中标记点)。我有一些正在按照我需要的方式创建的数组,我正在尝试使用ajax
和php
将这些数组写入服务器端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”(在此阶段,它将与html
和php
文件位于同一文件夹中。该文件根本没有出现。
我尝试了几种不同的方法,包括使用下面的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);
我对这些语言很陌生,所以我正在拼凑各种来源,但我显然错过了一些东西。