【问题标题】:Submitting $_POST variables on pageload without refresh在页面加载时提交 $_POST 变量而不刷新
【发布时间】:2020-03-27 12:38:19
【问题描述】:

我有两个页面,Page_A.php 和 Page_B.php。 Page_A.php 是用户填写表单并单击提交的地方,将他们定向到 Page_B.php。 Page_B.php 充当一种确认页面,带有一个隐藏表单,用于捕获值并在标签中显示相关信息。我检查了隐藏的输入,它们实际上正在捕获这些值。

我正在尝试在页面加载时提交表单而不刷新页面。我试过用 Ajax 来做这件事,但似乎无法提交表单。在这里寻求任何建议

<script>
    jQuery(document).ready(function($){
        ajax();
    });
    function ajax(){
        var url = "<?php echo get_stylesheet_directory_uri(); ?>/pricing-form/form-handler.php";
        $.ajax({
            type: "POST",
            url: url,
            data:$( "#hidden-form" ).serialize(),
            dataType: "html", //expect html to be returned                
            success: function (response) {
                $("#prores").html(response);
            }
        });
        return false;
    };
</script>

【问题讨论】:

  • 你能发布 HTML
  • ajax 响应说什么,在浏览器控制台中检查
  • 这将用于 Page_B.php?您忘记在此处将哈希放在选择器中:data : $('hidden-form').serialize()
  • 您需要删除$('#hidden-form').submit(ajax);。您不想逐字提交表单。您只想在页面加载时执行 ajax 调用。您执行 ajax 调用的原因是您可以避免实际提交表单,因为提交表单会导致页面加载。
  • 我不明白你的问题。您为什么要在页面加载时提交表单?不会是空的吗?

标签: php ajax forms


【解决方案1】:

您可以简单地执行以下操作。

<script>
$(document).ready(function() {
    ajax();
});
function ajax(){
    $.ajax({
        url : 'target url',
        type : 'POST',
        data : $('#hidden-form').serialize(),
        success: function() {
            alert('form was submitted');
        }
    });
    return false;
};

</script>

【讨论】:

  • 谢谢你 - 我收到一个未捕获的类型错误:使用此方法时无法读取未定义的属性 'ajax'。我已将帖子中的原始代码更新为我目前拥有的代码。
  • 我怀疑这条线 var url = "/pricing-form/form-handler.php";你能检查一下这行是否正确返回了 url。
  • 是的,这是 form-handler.php 文件的正确路径
  • 我试过 在我的服务器上,它没有在我端运行……你能手动输入完整的 url 并检查测试吗?
猜你喜欢
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多