javascript - Ajax 表单不会通过 php 发布表单数据
问题描述
首先,我不是网络开发人员。但是我遇到了一个尝试开发网站的朋友的问题。他有一个按钮 html 标记,如下所示:
<form id="frm">
<textarea class="form-control" id="message-text" placeholder="Enter Text Here "></textarea>
</form>
<div class="col-md-4 text-center" id="btndiv">
<button type="button" id="btnSend" class="btn btn-primary mr-auto">Send</button>
</div>
还有一个使用 ajax 的 javascript 文件:
$(document).ready(function () {
$("#btnSend").click(function () {
$.ajax({
url: './request.php',
type: 'POST',
data: {message: $("#message-text").val()},
success: function (result) {
$('#resp').prepend('<img id="theImg" src="./success/qr.png" />')
$('#frm').hide();
$('#btndiv').hide();
}
});
});
});
还有一个 request.php 文件:
<?php
if(isset($_POST['message-text']))
{
$data=$_POST['message-text'];
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . 'data.txt', 'a');
fwrite($fp, $data);
fclose($fp);
}
?>
他的目标是让服务器将表单内容写入服务器根目录中的 data.txt 文件。他在本地提供了它,实际上“成功”功能将在图像弹出的地方起作用。但是 ajax 从不调用 POST 函数作为响应。我试图自己弄乱它,但我不熟悉网络开发。有人知道这里有什么问题吗?
提前致谢。
解决方案
它应该是。
<?php
if(isset($_POST['message']))
{
$data=$_POST['message'];
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . 'data.txt', 'a');
fwrite($fp, $data);
fclose($fp);
}
?>
原因是您在 javaScript 文件中传递对象,即“消息”。
data: {message: $("#message-text").val()},
推荐阅读
- reactjs - 更新 react-native 中的状态后,React 未更新视图模板
- reactjs - 我运行“npm start”命令,但启动整个 Web 项目需要几分钟
- laravel - Laravel Apply middlware on specific route of resource route controller
- linux - 如何获取当前时间的 docker stats?
- javascript - MacOS上的Chrome,音频一开始就会触发音频
- azure - 我如何从 java spring-boot AZURE 函数中的资源文件夹中读取任何文件?
- python-3.x - 如何使用 python 3.8 将文件上传到 AWS S3 子文件夹?
- java - Java 应用始终部署为 Azure 上的新应用服务
- email - 如何获取邮件并立即将其标记为已查看?
- snowflake-cloud-data-platform - 外部函数超时和重试行为