2012-11-21 143 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額外的頁面。