从没有HTML表单的POST方法中获取变量

时间:2018-02-25 13:24:47

标签: javascript php

我想将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,但我认为这不重要。

2 个答案:

答案 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电话,你可以查看确切的标题信息。