为啥 ajax 不将我的 JS 变量发送到 PHP?
Posted
技术标签:
【中文标题】为啥 ajax 不将我的 JS 变量发送到 PHP?【英文标题】:Why ajax doesn't send my JS variable to PHP?为什么 ajax 不将我的 JS 变量发送到 PHP? 【发布时间】:2022-01-24 03:48:07 【问题描述】:我正在尝试将 JS 变量发送到 php 脚本(包含在我尝试使 ajax 工作的页面中)
index.php
include 'PHP/display.php';
<button id="click" onclick="show();">Click !</button>
<script>
function show()
var str = "Yes";
$.ajax(
method : 'post',
url : 'PHP/display.php',
data:
str : str
,
success: function(data)
console.log(data);
);
</script>
显示.php
<?php
echo isset($_POST['str']) ? $_POST['str'] : "No";
?>
这一直显示“否”,但控制台显示我想要的“是”
这段代码是我第一次尝试使用 ajax,这就是为什么我尽量保持简单,但它不起作用。
我一直在 *** 上寻找几个小时,但没有一种解决方案适合我。
也许我错过了什么,请帮助我:(
【问题讨论】:
使用$_POST
而不是 $_REQUEST
,因为使用 ajax,您将使用 POST
方法发送数据
我想你的意思是使用$_POST
该按钮是否在表单中?如果它在表单中,那么由于表单默认提交过程,页面可能会重新加载
我用 POST 试过了,同样的问题,而且按钮不在表单中
我认为你有一个误解,即通过包含同一个文件,ajax 发送的数据将在索引中可用。它不是那样工作的。每次运行文件时,它都希望将该数据作为输入。每个实例在运行时对最后一个实例一无所知
【参考方案1】:
你可以看到ajax调用的url
属性和phpinclude
一样,但不同的是它会一直执行到你点击按钮为止。 PHP将能够接收到data
的内容
您可以使用 jQuery 的 text 方法将对段落的调用的响应分配为文本。
function show()
var str = "Yes";
$.ajax(
method: 'post',
url: 'display.php',
data:
str: str
,
success: function(data)
$('#response').text(data);
);
<p id="response"></p>
display.php
<?php
echo isset($_POST['str']) ? $_POST['str'] : "No";
【讨论】:
几个小时前我做了这样的事情,很好,但我不知道如何转换它以显示我用 ajax 从我的数据库发送的相同日期的事件(JS 变量) 没关系,我明白了,而不是将我的 php 文件包含到我的 div 中(我想在其中显示我的东西)我只是把这个 div 的 id 放在 jquery 选择器中:$.(id ).text(data) 及其工作!我没有注意到 data 代表 php 脚本返回的内容以上是关于为啥 ajax 不将我的 JS 变量发送到 PHP?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 php 没有将我的联系表单输入发送到我的电子邮件?
为啥 Django 不将我的 unique_together 约束强制为 form.ValidationError 而不是抛出异常?