2013-07-08 101 views
-2

如何在ajax調用成功後將PHP變量設置爲值?在jQuery上運行PHP Ajax成功

head.php

<script> 
    j.ajax({ 
     method: 'get', 
     url: '/php/ajax/auto_select_market.php', 
     data: { 
      'city': geoip_city(), 
      'state': geoip_region() 
     } 
    }); 
</script> 

auto_select_market.php

include_once '../includes/library.php'; 
include_once '../includes/config.php'; 

session_start(); 

$market = ... 

$_SESSION['CURRENT_MARKET'] = $market ? $market : ... 

我需要後的AJAX調用成功設置該變量。

<?php 
    $user['CURRENT_MARKET'] = $_SESSION['CURRENT_MARKET']; 
?> 

但是,我不能只設置一個全局變量的變量auto_select_market.php。使用global $user;在其他文件中不起作用。

+0

你在調用'session_start()'嗎? –

+2

這個問題沒有道理。直到PHP腳本退出,AJAX調用纔會完成。 – Barmar

+0

具體,這個問題不具有意義。請清楚你想要做什麼。如果您想將某些數據傳送到各種頁面,請將它們保存爲會話變量,否則請提供信息。 –

回答

1

我不確定你想要做什麼。然而,這裏是我的鏡頭:

正如你所看到的,如果你設置了一個$user變量,這些值只在執行php文件(即頁面)期間有效。

如果您希望該值保留在服務器中,以便可以在頁面之間進行檢索,則可以使用$_SESSION。我不能完全肯定,如果你知道你可以手動設置對象作爲值就可以了:

$_SESSION['user'] = $user; 

這樣的話,你可以在頁面之間保存您的$user值(和,當然,你的$user['CURRENT_MARKET']值)。

0

成功的AJAX調用後,您必須發送另一個確認請求,或者您必須相信客戶端正確接收了所有數據,並且成功考慮主客戶端請求。

如何將一些數據提供給服務器的唯一方法是將它們作爲POST/GET請求或參數(沒有REST擴展)發送。

0

只需使用另一個$ _SESSION可存儲的數據。這個會話可以使用任何項目的php文件。

i.e. $_SESSION['USER'] = $user['CURRENT_MARKET']; 

注意:使用session_start();如果會議沒有開始。

另一種方法:你可以在退出php腳本之前使用上面的行。