不明白为什么我不用我的脚本更改我的 PHP 变量
don't understand why i'm not changing my php variable with my script
我正在尝试自学如何将AJAX与PHP一起使用。 但是,我无法让我的(可能损坏的)AJAX 代码来更改我的$things变量的值。 相反,发生的情况是重新加载索引.php页面并添加一个全新的按钮。 这是我的代码:
<?php
$things = 0;
?>
<!DOCTYPE html>
<html>
<head>
<title>testing</title>
<script>
function changeMe()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("changetest").innerHTML=xmlhttp.responseText;
}
}
var things = "<?php echo $things; ?>";
things++;
xmlhttp.open("GET","index.php?things="+things,true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php
echo "<p>Things = <span id='"changetest'"" . $things . "</span></p>";
?>
<button type="button" onclick="changeMe()">Change Content</button>
</body>
</html>
关于我在哪里搞砸了的任何线索?
我可以看到至少两个问题:
- 您没有使用要发送回服务器的变量
$_GET['things']
任何地方。相反,您始终将其设置为0
因此您将永远不会看到其他任何内容; - 您正在发布到原始 php 文件。这意味着响应将是完整的 html 页面,包括
head
等。您可能想要一个单独的文件来仅发回您真正需要的内容。
一个单独的 php 文件的例子就是回显发送的内容:
<?php
echo 'I sent the number: ' . intval($_GET['things']);
现在你应该向这个文件发出ajax请求,而不是index.php
。
您应该
删除"<?php echo $things; ?>";
周围的引号并使其var things = <?php echo "'".$things."'"; ?>
。
相关文章:
- 在我的php模型中用javascript更改一个html类
- 如何通过Javascript调用我的PHP文件
- 我的 PHP 网址不会重定向
- 为什么我的PHP数组没有作为数组发布到JavaScript
- 我希望我的php/html网站上的JavaScript能够实时更新
- 为什么我的php数组只返回最近/最后发布的活动
- 如何保护我的php、jquery和ajax请求免受黑客攻击
- 我如何通过JavaScript连接到我的PHP程序所在的服务器
- 我的 AJAX 表单没有发送到我的 PHP
- 如何正确访问我的PHP文件?直接从JS或通过“;主“;PHP
- 为什么我的 php 文件不能从我的 JavaScript 运行
- 为什么我的 php echo 不起作用
- 为什么我的 php 连接到 mysql 服务器不起作用
- AngularJS与我的PHP API:获得值的工厂(async:false need alternative)
- 为什么我的PHP函数没有由jQuery $.get执行
- 不明白为什么我不用我的脚本更改我的 PHP 变量
- 如何在我的php注释框中实时替换带有表情符号的文本
- 现在我已经将内容发布到我的 PHP 脚本中,我该如何获取它
- 为什么 Javascript 事件处理程序会更改我的 PHP 变量
- 我的 PHP 无法接收我通过 ajax 发送的“帖子”变量