【发布时间】:2015-11-20 05:19:06
【问题描述】:
如何在表单输入中添加 ajax 发送的数据以保存为会话。我在 header.php 中有 session_start()。我将代码保存在数据库中,它可以工作。谢谢。 我试过这个:
HTML 表单
<form action='' method='post'>
<input id='code' type='text' name='code'>
<a id='send_code'>Send code</a>
</form>
AJAX(我有一个提交处理程序)
var code = $('#code').val();
$.ajax({
type: "POST",
url: ajaxurl,
data: {action: 'insert_code', code: code},
success: function(msg){
console.log(msg);
}
});
来自functions.php的PHP
$code = ( isset( $_POST['code'] ) ) ? htmlspecialchars( trim( $_POST['code'] ) ) : '';
$_SESSION['contest'] = array(
'code' => $code,
);
if( isset( $_SESSION['contest']) ){
echo 'Session: ' . $_SESSION['contest']['code'];
}else{
echo "Session not set";
}
【问题讨论】:
-
开发者控制台(大多数浏览器中的 F12)是否报告任何错误?还请查看控制台的网络选项卡 - 您对 ajax 请求的响应是什么?
-
在控制台中我得到“会话:4123423”(代码)
-
你还没有关闭
a标签,所以很可能ajax函数没有正确注册 -
对不起。我有一个更大的代码。出于可读性和速度目的,此处的所有代码都被缩短了。在我的原始代码中没问题。我也修改了我的问题。
-
是的,但在这一点上它似乎工作 - 就像你告诉我的那样。在哪一点没有设置会话变量?代码中的哪一点有问题?
标签: php html ajax wordpress session