【发布时间】:2016-10-03 22:58:50
【问题描述】:
当我单击表单上的按钮时,我想向会话数组添加一个值。我尝试使用 jquery onclick、ajax 和 jquery 来实现这一点。但它似乎没有设置变量或返回任何东西。
在我的 main.php 中有
<form id="sessy">
<input type="text" name="name" id="name">
<button id="submit" name="submit" class="btn btn-success">Submit</button>
</form>
<script>
$("#sessy").submit(function(){
$.ajax({
type: "POST",
url: "session.php",
data: $(this).serialize(),
success: function(){
// Do what you want to do when the session has been updated
}
});
return false;
});
</script>
<?php
session_start();
echo $_SESSION['name'];
?>
在我的 session.php 中
<?php
session_start();
$_SESSION['name'][] = $_POST['name'];
?>
我在页面底部调用 jQuery.js。
它在下面给出了我,其中第 23 行是我试图回显会话变量的部分。
Notice: Undefined index: name in ....main.php on line 23
我尝试 print_r($_SESSION);而不是 echo 我得到的只是“数组()”
【问题讨论】:
-
在
$_SESSION['name'][] = $_POST['name'];之前添加if(!isset($_SESSION['name'])) { $_SESSION['name'] = []; } -
session_start();必须在任何内容写入输出之前使用,提交后不会显示结果,因为页面不会重新加载,$_SESSION['name']是一个数组,所以echo $_SESSION['name'];是错了,你应该检查之前是否设置了键'name'
标签: javascript php jquery ajax session