【发布时间】:2018-03-07 11:15:52
【问题描述】:
我是 AJAX 新手,不擅长 PHP。我正在尝试使用 JQuery $.AJAX 函数简单地向我的 PHP 页面发送一个说“Hello”的字符串。到目前为止,我已经成功让 AJAX 将信息发送到页面并将其记录在控制台中,但数据没有存储到 POST 变量中。
请记住,我来这个论坛寻求帮助并不是偷懒,但我别无选择,因为我已经搜索了大约 2 天来解决这个问题,但没有找到任何有用的东西。
这是我的 HTML (order.html) - 这不是我的全部 HTML,但它是您需要的全部):
<html>
<body>
<form method="POST">
<button id="order-btn" type="submit" formaction="PHP/sendMail.php">Order</button>
</form>
<!-- JavaScript/JQuery links -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="JS/order.js"></script>
</body>
</html>
这是我的 JavaScript(order.js - 再一次,我只提供必要的代码)
$("#order-btn").click(function() {
var txt = "Hello!";
$.ajax({
url: "PHP/sendMail.php",
type: "POST",
data: {data: txt},
dataType: "html",
asyc: true,
success: function(data){
console.log(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert("ERROR:" + xhr.responseText+" - "+thrownError);
}
});
});
这是我的 PHP(sendMail.PHP - 我只提供必要的代码)
<?php
if(isset($_POST['data'])) {
$data = $_POST['data'];
echo $data;
} else {
echo "Failed to grab data.";
}
澄清一下,在我的实际代码中,URL 是我网站页面的完整 URL。
如果您想查看该网站以更好地了解我需要此功能的工作方式和原因,请在 cmets 中告诉我。
更新和解决方案:
从我收到的帮助中,我现在了解到 AJAX 只会更新当前页面上的信息(因此,例如,如果您在 index.html 上有 AJAX 功能,那么您只能在该页面上运行 AJAX 而不能跨页面传输信息)
为了解决我的问题,我停止将用户发送到 sendMail.php 页面,而是在 $.ajax 成功方法中更改了我当前所在页面 (order.html) 的 HTML 内容。
这是更新后的 JavaScript 代码:
$("#order-btn").click(function() {
var txt = "Hello!";
$.ajax({
url: "order.html",
type: 'POST',
data: {data: txt},
dataType: 'html',
success: function(data){
if(parseInt(data)!=0) {
$("body").html(data);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert("ERROR:" + xhr.responseText+" - "+thrownError);
}
});
});
我要感谢所有帮助过的人:)
【问题讨论】:
-
这个按钮#order-btn 是表单提交按钮吗?
-
抱歉,由于某种原因,我的 HTML 已被删除。订单按钮位于使用 POST 方法的表单中,并且该按钮有一个指向 sendMail.php 页面的表单操作
标签: javascript jquery html css ajax