我使用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 ...我不想发送到另一个页面。
感谢
答案 0 :(得分:2)
$_COOKIE
填充了从浏览器发送到服务器的数据。
在发回响应并执行JavaScript之前,更改cookie的JS不会运行。
在您发出新的HTTP请求之前,$_COOKIE
中的值不会更新。
答案 1 :(得分:0)
您可以使用XHR。
JavaScript(使用jQuery):
$.ajax('script.php', {
data: { 'name': 'hello' }
});
PHP:
var_dump($_GET['name']);
答案 2 :(得分:0)
你不能。
好的,我想我得解释一下。在您的页面上,首先是Javascript,然后是PHP代码,但它不按该顺序执行。 首先,服务器执行PHP代码,将页面作为HTML发送,并在客户端执行javascript。
如果你真的不想重新加载整个页面,唯一的方法就是对你的PHP代码所在的页面使用ajax请求。只需使用JQuery并用以下代码替换您的PHP代码:
$('#result').load('showCookie.php');
showCookie.php的内容将是您的var_dump,页面将完全按照您的意愿执行,除非您使用JQuery调用了其他页面。