我想将javascript变量(没有表单)传递给php,因此php可以在服务器端的文本文件中编写它们。为此,我使用了这个jQuery行:
$.post( "http://localhost/main.php", data);
这是php:
$data = $_POST['data'];
echo $data;
$file = "test.txt"
$handle = fopen($file, 'w');
fwrite($handle, $data);
fclose($handle);
我认为问题可能是数据'标签,当我尝试访问php中的信息时,但我不知道应该放在那里,因为我找到的所有示例都与html表单相关联。
另一件事,我真的不明白的是:我按下按钮点击这一切,所以如果我点击按钮,它会发布到php,但实际上是这样做的运行上面的PHP代码,并写入文本文件或我错过了什么?
*顺便说一下,我使用WAMP for PHP,但我认为这不重要。
答案 0 :(得分:1)
发布数据以键/值对提交。对于您的有效负载:
glDrawElements()
在POST请求之后,PHP在$ _POST关联数组中包含此数据。
例如,要访问hours => 0, mins => 0, secs => 0, tenths => 0
,您需要撰写hours
。
如果要将数据写入文本文件,现在需要告诉PHP文件应该是什么样的:
$hours = $_POST["hours"]
现在可以将此变量作为第二个参数传递给fwrite函数:
<?php
$hours = $_POST["hours"],
$mins = $_POST["mins"]
.
.
.
$fileDataToWrite = "Hours: ".$hours." Minutes: ".$mins // and so on
结果文件如下所示:
$file = "test.txt"
$handle = fopen($file, 'w');
fwrite($handle, $fileDataToWrite);
fclose($handle);
您可以选择文件的外观,或者您是否希望通过简单地更改Hours: 0 Minutes: 0
变量的构建方式使其成为JSON格式。
在你的JS代码中,你应该为PHP在服务器端运行时添加一个回调:
$fileDataToWrite
答案 1 :(得分:1)
Semi-Copying my answer from here
PHP非常有趣,因为当涉及到Ajax时,它不像其他表单那样从$ _POST中提取。实际上你需要从php:// input
读取输入这是一个很小的例子
$data = file_get_contents("php://input");
$response = json_decode($data, true ); // True converts to array; blank converts to object
$emailAddr = $response["hour"];
希望你能成功申请。
在调试时,我强烈建议您使用Chrome的开发者模式,使用&#39;网络&#39;标签。在底部附近找到你的ajax电话,你可以查看确切的标题信息。