-3

我通过使用 cookie 使用以下代码从 javascript php 传递变量。

<script type="text/javascript">
function gTest() {
               var country = 'hello testing';
    document.cookie = 'name=document.write(country);' ; 
         document.write(country);
}
gTest();
</script>


<?php  
echo "<br>";
     var_dump($_COOKIE['name']);  
?> 

如果我们改为

    document.cookie = 'name=hello' ; 

我想将变量值传递给同一页面中的 php...我不想发送到另一个页面。

谢谢

4

3 回答 3

2

$_COOKIE填充有从浏览器发送到服务器的数据。

更改 cookie 的 JS 不会运行,直到返回响应并执行 JavaScript。

在您发出新的 HTTP 请求之前,其中的值$_COOKIE不会更新。

于 2012-11-21T14:37:54.560 回答
0

你不能。

好吧,我想我得解释一下了。在您的页面上,首先是 Javascript,然后是 PHP 代码,但它没有按该顺序执行。首先,服务器执行 PHP 代码,将页面作为 HTML 发送,然后在客户端执行 javascript。

如果您真的不想重新加载整个页面,唯一的方法是使用 ajax 请求到您的 PHP 代码所在的页面。只需使用 JQuery 并将您的 PHP 代码替换为:

$('#result').load('showCookie.php');

showCookie.php 的内容将是您的 var_dump 并且该页面将完全按照您的意愿执行,除了您使用 JQuery 调用了一个附加页面。

于 2012-11-21T14:50:13.093 回答
0

您可以使用 XHR。

JavaScript(使用 jQuery):

$.ajax('script.php', { 
    data: { 'name': 'hello' }
});

PHP:

 var_dump($_GET['name']);
于 2012-11-21T14:40:35.857 回答