【问题标题】:Ajax submit form and store in PHP/WordPress sessionAjax 提交表单并存储在 PHP/WordPress 会话中
【发布时间】:2019-07-09 10:56:21
【问题描述】:

这是我的表格:

<form id="sessie_datum">
    <input type="text" id="datepicker" placeholder="Klik hier om een datum te kiezen" name="wapbk_hidden_date" value="">
    <input type="submit" value"submit">
</form>

我使用 AJAX 将此表单提交到我的 WordPress 根文件夹中的一个名为 datum.php 的文件中

我的jQuery函数是这样的:

 $("form#sessie_datum").submit(function() {
        var str = jQuery("#sessie_datum").serialize();
        $.ajax({
            type: 'POST',
            url: 'https://testnieuw.skihal.com/datum.php',
            data: $("#sessie_datum").serialize(),
            dataType: 'text',
            success: function() {
                alert('Gelukt!');
            }        
        });
     return false;        
});

单击提交按钮后,我收到警报,因此它会转到文件。

我的下一个问题是在 datum.php 文件中需要什么来获取日期选择器中填写的日期? 之后我想将它作为变量存储在 WordPress 会话中,这可能吗?

编辑:

我的 datum.php 现在有了这个:

   <?php

session_start();
$_SESSION["chosen_date"] = $_POST['wapbk_hidden_date'];

$foo = "Test";
$_SESSION['foo'] = $foo;

?>

我的functions.php有这个:

session_start();
echo $_SESSION['foo'];
echo session_id();

【问题讨论】:

  • 将以下内容放入datum.php 并在浏览器开发者控制台中检查响应:&lt;?php print_r($_POST);。它将向您显示可用的变量,并且很容易以这种方式选择正确的变量。
  • Jacob,在控制台的响应中我看到Array ( [wapbk_hidden_date] =&gt; 2019-02-01 )。所以这一切都应该工作。您可以输入 datum.php print_r($_SESSION);(会话开始后)吗?
  • 嗨,我只看到这个:https://ibb.co/xhzFz5s 顺便说一下,我在 datum.php 中添加了print_r($_SESSION);
  • 好像你现在变了更多,但是日期在那里,我不明白你的问题了,一切正常:-)
  • 谢谢你!这是工作。找了很久。

标签: php jquery ajax wordpress session


【解决方案1】:

您在 datum.php 中使用 ajax 发送日期。如何进入 datum.php 我完全取决于你的 ajax 'type' 是 POST 还是 GET。

If type = POST
$_SESSION["chosen_date"] = $_POST['wapbk_hidden_date'];

if Type = GET
$_SESSION['chosen_date'] = $_GET['wapbk_hidden_date']

echo $_SESSION['chosen_date'];

【讨论】:

  • 那么'data'将是一个可以在我的functions.php文件中调用的变量?
  • 这里的数据是用于在会话中存储值的临时变量...您可以在任何页面上使用它
  • 嗨,我的 datum.php 现在是:&lt;?php $_SESSION["chosen_date"] = $_POST['wapbk_hidden_date']; ?&gt; 在我的 functions.php 中我有这个:$call_date = $_POST['chosen_date']; echo $call_date; 然后它回显:未定义的索引:/var/www 中的 selected_date /vhosts/skihal.com/testnieuw.skihal.com/wp-content/themes/skihal-child/functions.php 在第 11 行
  • 您必须使用 $_SESSION['chosen_date'] 而不是 $_POST['chosen_date']...bcz 您的表单发布 'wapbk_hidden_​​date' 存储到 'chosen_date session' 所以你有访问 selected_date 会话...检查编辑的答案
  • 嗨,检查我编辑的问题。这就是它现在的样子。仍然得到回声:未定义变量:第 11 行 /var/www/vhosts/skihal.com/testnieuw.skihal.com/wp-content/themes/skihal-child/functions.php 中的 _SESSION 我需要开始一个会话吗在 datum.php 中?
【解决方案2】:

在 datum.php 中

让它像一个会话

session_start();

if(isset($_REQUEST['wapbk_hidden_date'])) { $_SESSION['wapbk_hidden_date']=$_REQUEST['wapbk_hidden_date']; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2021-12-13
    • 2013-03-08
    • 2023-04-08
    • 2017-09-12
    • 1970-01-01
    • 2013-09-17
    相关资源
    最近更新 更多