通过没有表单的帖子将javascript变量发送到php脚本

时间:2013-10-26 05:06:53

标签: 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 },
   type: 'POST',
   success: function(result) {
    alert("success!");
       }
});

然后在'myphp.php'页面上接收:

<?php
if(isset($_POST['myvariable']))
{
$myvariable = $_POST['myvariable'];
}
?>

我试图在不使用表单提交的情况下执行此操作 - 我只是希望它在页面加载时通过ajax发送变量。尝试回显或打印变量$ myvariable导致空白页面。同时尝试在API调用中使用此变量会向我发出警告,指出该字段为空。

2 个答案:

答案 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').innerHTMLdocument.getElementByName(' ').innerHTML来获取元素的innerHTML值。

相关问题