通过post将javascript变量发送到php脚本,无需表单

通过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 }

我知道有很多问题和我一样,但我正在尝试使用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调用中尝试使用此变量时,会警告我该字段为空。

我可以看到您想要执行的操作,但不幸的是,它的逻辑放错了位置

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,它是空的。对于愚蠢的问题,非常抱歉,感谢您抽出时间。