我知道有很多像我这样的问题,但我正在尝试使用AJAX将javascript变量传递给php脚本。谁能指出我做错了什么?似乎无法弄明白。我在原始页面上的javascript:
var myvariable = document.documentElement.innerHTML;
// send variable to server via ajax here
$.ajax({
url: 'myphp.php',
data: { myvariable : myvariable },
type: 'POST',
success: function(result) {
alert("success!");
}
});
然后在'myphp.php'页面上接收:
<?php
if(isset($_POST['myvariable']))
{
$myvariable = $_POST['myvariable'];
}
?>
我试图在不使用表单提交的情况下执行此操作 - 我只是希望它在页面加载时通过ajax发送变量。尝试回显或打印变量$ myvariable导致空白页面。同时尝试在API调用中使用此变量会向我发出警告,指出该字段为空。
答案 0 :(得分:0)
我可以看到你想要做什么但不幸的是它的逻辑是错误的。
PHP在Javascript之前加载,因为服务器在发送到您的浏览器之前解析它。所以$myvariable
在从AJAX请求接收之前没有任何价值,直到页面实际加载之后才会发生。由于未重新请求页面的新版本,因此您看不到任何新内容。
您需要一种方法将PHP文件中的变量动态传递回浏览器。这是使用JSON或类似的方法完成的,直接将变量发送回Javascript以便在浏览器中进行解析。
在服务器上安装JSON库后,您将在Javascript中设置dataType: json
,在PHP中设置json_encode($responseData);
。
var myvariable = document.getElementByID('idforelement');
答案 1 :(得分:0)
阅读此内容以进行ajax调用:jQuery Ajax
并使用document.getElementByID('element_id').innerHTML
或document.getElementByName(' ').innerHTML
来获取元素的innerHTML值。