gpt4 book ai didi

javascript - AJax 变量没有发送到 php 变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:15 24 4
gpt4 key购买 nike

我对 Ajax 和 Jquery 非常陌生,并且通过 SO 和在线教程学习,所以请记住我是一个菜鸟,如果您阅读并善待回答我的帖子。

我已经设法创建了以下表单,它是一个在提交时显示消息的表单。如果表单已成功提交,则会显示一条消息,而不会刷新页面,如下图所示:

enter image description here

表格

        <form name="message-form" action="" id="contact-form" method"post">
Message<br /> <input type="text" name="msg" value="" /><br />
<input type="submit" value="Contact Us" name="contact" class="buttono" />
</form>
<div class="form-feedback" style="display:none">
Thank You We will Get Back to you
</div>
<div class="form-feedback" style="display:none">
Ooops....Something Went Wrong
</div>
<div>

JQUERY

  $(function(){
$("#contact-form").submit(function(e){
e.preventDefault();

$form = $(this);

$.post(document.location.url, $(this).serialize(), function(data){
$feedback = $("<div>").html(data).find(".form-feedback").hide();
$form.prepend($feedback)[0].reset();
$feedback.fadeIn(1500)
})

});
})

我想做什么

从文本字段消息中检索值并将其分配给 php 变量

我的问题

当我尝试使用以下代码检索消息的值时,没有任何反应:

表单下方的 PHP 代码

 <?php
if(isset($_POST['contact'])){
$message = $_POST['msg'];
echo $message;
}
?>

我对 Ajax 很陌生,所以我想我在这里做错了,不幸的是我不知道我哪里出错了所以我希望有人能在这里把我带到正确的道路上。

提前致谢

最佳答案

Hanoncs 的建议会奏效,但只在浏览器端保留内容(通过仅显示从表单到 div 的消息),将始终给用户留下消息是在服务器端发送(处理)的印象,但它并不总是在这种情况下,可以让 php 在用 javascript 显示之前返回它。所以这是我建议的另一种方法:

首先,进行关注点分离:向同一个当前页面发送 POST HTTP 请求在某种程度上与 AJAX 的目的相矛盾。 HTTP 响应将包含所有页面(由 PHP 呈现的 HTML、用于模板的嵌入式 HTML,如果未加入脚本标记,则可能包含脚本)。相反,我建议您创建一个单独的小 php 文件,负责只渲染所需的标记。因此,不使用 $.post(document.location.url..,而是使用 $.post('pathToSmallPHPFile'..

其次,让 jQuery AJAX 函数接受回调或使用 promise 。建议您仔细阅读以下内容link.

关于javascript - AJax 变量没有发送到 php 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31363868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com