【问题标题】:Can't read POST value from form in php send by jquery ajax无法从 jquery ajax 发送的 php 表单中读取 POST 值
【发布时间】:2018-02-01 12:02:55
【问题描述】:

我正在尝试从 ajax 表单发送数据并使用 php 接收 POST。 页面错误:

注意:未定义的索引:第 2 行 C:\xampp\htdocs\testajax\dalej.php 中的数字。

在 index.php 中加载页面的脚本

<script type="text/javascript">
        var info = {
            content: "formularz"
        }
            loadContent('formularz');

            $('body').on('click', '.btn',function(e) {


                var content = $(this).data('content');

                if(info.content != content) {
                    loadContent(content);
                }
                e.stopPropagation();
            });
        function loadContent(content) {
            $.ajax({
                    url: 'loader.php',
                    type: 'post',

                    data: { Content : content },
                    success: function(response){

                        $('#content').html(response);
                        info.content = content;

                    }
                    });
        }
</script>

loader.php

?php
    $CONTENT = $_POST['Content'];


    if($CONTENT == 'formularz'){
        require_once('formularz.php');
    } else if($CONTENT == 'dalej') {
        require_once('dalej.php');
    }
?>

formularz.php 中的脚本

    <script type="text/javascript">
    $(document).ready(function(){
                            $('#newForm').on('submit', function(e){

                            e.preventDefault();
                            var numer = $('#number').val();
                            $.ajax({

                            type:"POST",  // <--- Should be post
                            data:{numer: numer},
                            url:'dalej.php'
                            });
                        });
    });
</script>

尝试在此页面 dalej.php 中读取 POST

<?php

if(isset($_POST['numer'])){
        echo $_POST['numer'];
    }

var_dump($_POST);
 ?>

它看起来像 ajax 发送 POST 值但 php 无法读取它。:

Firefox debug

var_dump($_POST);

显示这个:array(1) { ["Content"]=> string(5) "dalej" }

尝试了很多类似 Jquery Form plugin 之类的东西,或者将 $.ajax 更改为具有不同值的 $.post 但结果总是同样...我使用 Xampp 3.2.2 。对不起我的英语,谢谢你帮我解决这个问题:)

【问题讨论】:

  • 您的错误和文件不匹配 - 根据您在第 2 行检查 isset($_POST['numer']) 的文件 - 这不会引发您看到的错误.请检查您的文件并编辑您的问题。
  • 与您的问题相关的代码直接属于您的问题,而不仅仅是转储在外部网站上。请相应地编辑您的问题。 How to Ask
  • 尝试在浏览器中调试 javascript 代码——如果你不知道怎么做——尝试在 javascript 函数的开头放置断点,看看它在声明和运行期间是如何进行的。此外,我在调试 AJAX 时个人所做的是,我在不同的步骤中执行 alert("dumb_text") 以查看函数是否正在向前发展。写回你能找到的内容。

标签: javascript php jquery ajax post


【解决方案1】:

任一变化:

&lt;select name="numer" id="numer" &gt;

收件人:

&lt;select name="numer" id="number" &gt;

var numer = $('#number').val();

收件人:

var numer = $('#numer').val();

【讨论】:

  • 您应该定期检查您的变量(/object/array)是否包含数据,因为如果没有,您将收到此错误。您可以通过使用例如:console.log($('#numer').val()); in JS 来做到这一点。
  • 对不起,我看错了你的评论,你应该改变元素的id选择器的id,它们应该都是一样的。
猜你喜欢
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多