首页 > 解决方案 > 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 函数作为响应。我试图自己弄乱它,但我不熟悉网络开发。有人知道这里有什么问题吗?

提前致谢。

标签: javascriptphphtmljqueryajax

解决方案


它应该是。

<?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()},

推荐阅读