2012-11-21 174 views
-3

我通过使用cookie从以下代码传递javascript php中的变量。将变量从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 ...我不想发送到另一个页面。

感谢

+1

可能重复的[传递JavaScript变量到PHP?](http://stackoverflow.com/questions/5546675/passing-javascript-variables-to-php) – deceze

+0

我会使用查询字符串参数或窗体来发送数据到服务器 – akonsu

+0

您需要了解Javascript中的字符串连接。 – SLaks

回答

2

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

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

在您创建新的HTTP请求之前,$_COOKIE中的值不会更新。

0

您可以使用XHR。

的JavaScript(使用jQuery):

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

PHP:

var_dump($_GET['name']); 
0

你不能。

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

如果你真的不想重新加载整个页面,唯一的方法就是使用ajax请求到你的PHP代码所在的页面。只需使用jQuery和这个替换你的PHP代码:showCookie.php的

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

内容将是你的var_dump和页面会做你想要什么,除非你已呼吁与jQuery额外的页面。