通过post将javascript变量发送到php脚本,无需表单
我知道有很多问题和我一样,但我正在尝试使用AJAX将javascript变量传递给php脚本。有人能指出我做错了什么吗?我好像想不出来。原始页面上的我的javascript:通过post将javascript变量发送到php脚本,无需表单,php,jquery,ajax,Php,Jquery,Ajax,我知道有很多问题和我一样,但我正在尝试使用AJAX将javascript变量传递给php脚本。有人能指出我做错了什么吗?我好像想不出来。原始页面上的我的javascript: var myvariable = document.documentElement.innerHTML; // send variable to server via ajax here $.ajax({ url: 'myphp.php', data: { myvariable : myvariable }
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调用中尝试使用此变量时,会警告我该字段为空。我可以看到您想要执行的操作,但不幸的是,它的逻辑放错了位置 PHP在Javascript之前加载,因为服务器在发送到浏览器之前会对其进行解析。因此,
$myvariable
在从AJAX请求接收到它之前没有任何值,而AJAX请求在页面实际加载之后才会出现。由于没有重新请求页面的新版本,因此您不会看到任何新的显示
您需要一种将变量从PHP文件动态传递回浏览器的方法。这是通过使用JSON或类似的方法来完成的,可以将变量直接发送回Javascript,以便在浏览器中进行解析
一旦服务器上有了JSON库,就可以在Javascript和PHP中设置数据类型:JSON
,并调用JSON\u encode($responseData)代码>
哦,是的,就像其他人说的:
var myvariable = document.getElementByID('idforelement');
阅读以下内容以进行ajax调用:
并使用document.getElementByID('element_id').innerHTML
或document.getElementByName('').innerHTML
获取元素的innerHTML值。您是否收到任何javascript错误?您确定myvariable不为空吗?var myvariable=document.documentElement.innerHTML?success:不推荐使用函数(),请改用.done(function()。以及它的document.getElementByID()或ByName(),etccheck开发者控制台你应该有错误…你的数据应该以帖子的形式发送…我想@samitha可能有什么问题…这就是我的答案…无论我如何更改javascript,php总是先加载,然后将我的变量视为空。我想这不是我希望的答案,而是正确的答案。所以如果我这样做$myvariable=json_encode($responseData);在php页面上,然后继续在php中使用$myvariable,它是空的。对于愚蠢的问题,非常抱歉,感谢您抽出时间。