【问题标题】:Accessing serialized form data in PHP在 PHP 中访问序列化的表单数据
【发布时间】:2014-04-14 23:27:12
【问题描述】:

我试图避免烦人的页面重新加载,并尝试在用户提交表单时动态重新加载 div。但是,虽然数据确实传递成功并且序列化数据的输出是正确的,但我无法在 PHP 文件中访问这些。

这是我的代码:

<script>
    var submiting = false;

    function submitmyforum()
    {
        alert($('#filter_form').serialize());
        if (submiting == false)
        {
            submiting  = true;
            $.ajax({
                type:   'post',
                url:    'index.php',
                data:   $('#filter_form').serialize(),
                success: function(data, status, jqXHR) {
                    $('#clublist').html($(data).filter('#clublist').contents());
                    alert('submitted');
                    submiting  = false;
                }
            });
        }
        else
        {
            alert("Still working ..");
        }
    }
</script>

<?php
    if (isset($_POST['location'])) {
        echo "Location was set";
    }
?>

现在,在我的 HTML 中,我有多个名为“location[]”的复选框选项。此外,该网站与传统的页面重新加载技术配合良好,在这种技术中,表单通过 POST 方法将值提交到同一页面。

所以我有点确定 HTML 前端没有任何问题。我正在等待解决方案。

【问题讨论】:

  • 可以通过$_POST变量访问..
  • 你试过var_dump( $_POST )看看你得到了什么
  • 我正在尝试,但我没有得到想要的输出。
  • 我正在尝试,但我没有得到想要的输出。我也尝试了 var_dump。但是没有输出。实际上,当我点击按钮的那一刻,我看到了 2 个警报,div 被重新加载但它看起来是空的,也没有显示 echo "hi"。

标签: javascript php jquery forms serialization


【解决方案1】:

如果您想以帖子形式获取数据,那么您应该使用:

serializeArray() instead of serialize()

因为serializeArray() 创建了一个不是 JSON 数组的数组。我建议您在代码中更改它并尝试以$_POST 访问数据。

【讨论】:

  • 我试过它不起作用。我是否应该将我的 php 完全成型为一个单独的函数,然后在 url 中提及该函数?我怀疑数据是否真的传递给了 php 代码。我该如何检查?
  • 你可以提醒数据检查你得到什么样的数据作为响应,在你的 php 页面 echo/print_r 变量/数组并以退出结束。
猜你喜欢
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多