2010-12-02 63 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