【问题标题】:Saving values from php $_SESSION through $_POST in form inputs with ajax使用 ajax 将 php $_SESSION 到 $_POST 的值保存在表单输入中
【发布时间】: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


【解决方案1】:

尝试设置 contentType: "application/x-www-form-urlencoded"

【讨论】:

  • 为什么?这是默认设置。
猜你喜欢
  • 2016-07-10
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
  • 2014-02-14
  • 2018-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
相关资源
最近更新 更多