0

我知道有很多像我的问题,但我正在尝试使用 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 调用中使用此变量也会给我一个警告,指出该字段为空白。

4

2 回答 2

0

我可以看到你想要做什么,但不幸的是它的逻辑错位了。

PHP 在 Javascript 之前加载,因为服务器会在发送到浏览器之前对其进行解析。所以$myvariable在从 AJAX 请求接收到它之前没有任何价值,直到页面实际加载后才会出现。由于没有重新请求页面的新版本,因此您看不到任何新内容。

您需要一种将 PHP 文件中的变量动态传递回浏览器的方法。这是使用 JSON 或类似的东西将变量直接发送回 Javascript 以在浏览器中解析的方式完成的。

在服务器上拥有 JSON 库后,您将dataType: json在 Javascript 和调用的 PHP 中设置json_encode($responseData);.

哦,是的,就像其他人说的:

var myvariable = document.getElementByID('idforelement');
于 2013-10-26T05:19:28.830 回答
0

阅读本文以进行 ajax 调用:jQuery Ajax

并使用document.getElementByID('element_id').innerHTMLORdocument.getElementByName(' ').innerHTML来获取元素的 innerHTML 值。

于 2013-10-26T05:28:31.350 回答