2010-12-02 66 views
0

我用下面的代碼工作:的jQuery。員額不工作

action.php的

<?php 
$_SESSION['passtext'] = $_POST['passtext']; 
?> 

的index.php

<script type="text/javascript"> 
$(function(){ 
    $("#clickable").click(function() { 
     $.post("action.php", { passtext: "Hello" }); 
     alert('refresh the page to see the session text'); 
    }); 
}); 
</script> 

<a href="javascript:void(0);" id="clickable">click me to set session text</a> 

<?php if(isset($_SESSION['passtext'])) echo $_SESSION['passtext']; ?> 

當我點擊鏈接,我得到的警報,但似乎action.php根本沒有運行 - 因爲我會刷新頁面,並且我沒有看到$ _SESSION ['passtext']的回顯(它沒有被設置)

錯誤控制檯中沒有錯誤

我錯過了什麼?

回答

2

你需要在你的文件的開頭添加這行你處理之前會話:

session_start(); 

從PHP文檔:

在session_start()創建一個會話或 恢復當前的一個基於通過GET或 POST請求傳遞的 會話標識符,或通過cookie傳遞。

+0

哦男人,我不能相信我忘了,這實際上是一個巨大的後序我配對下來問這個簡單的問題 - 原來我錯過了在session_start ,現在我覺得自己像個假人 – samJL 2010-12-02 21:08:12

1

嘗試使用JQuery AJAX相反:

$.ajax({ 
    type: "POST", 
    url: "action.php", 
    data: "passtext=Hello" 
}); 
+0

你「明顯地說出了這樣的話」,爲我解決了一個問題!我傳遞了非關聯數據(例如數據:「Hello Bob」)並且沒有任何事情發生。注意到你的建議,我把它改爲「data:」Hello = Bob「,一切正常!所以,事實證明只有關聯值才能通過。哎呀)。 – gibberish 2012-09-21 22:33:24