不在URL参数中将任何数据发布到页面

时间:2017-08-25 14:05:50

标签: php jquery ajax post

我有2个PHP文件,我想使用$_POST方法将数据发布到第2页(pageA.php& pageB.php这些位于根目录中)

这是pageA.php:

<?php

$userID = "123";
$userName = "Frank";

?>
<html>
<head>
    <script src="mystyle/app/res/js/jquery-mobile/jquery.mobile-1.4.5.js">
</script>
    <script src="mystyle/app/res/js/jquery/jquery-3.1.1.js"></script>
</head>
<body>

<input type="hidden" name="userID" value="<?php echo $userID;?>"/>
<input type="hidden" name="userName" value="<?php echo $userName;?>"/>

<script type="text/javascript">
    var userID = $('input[name="userID"]').val();
    var userName = $('input[name="userName"]').val(); 

    $('body').click(function() {
        $.ajax({
        type: "POST",
        url: 'pageB.php',
        data: {userID: userID, userName: userName},
        success: function() {
            alert(userID + userName);
            $('body').load('pageB.php');
            }

        });
    });
</script>

</body>
</html>

这是pageB.php:

<?php
$userID = $_POST['userID'];
echo "<script>alert('" . $userID . "');</script>";
?>

我得到的错误消息来自PHP,并出现以下错误:

  

注意:未定义的索引:第2行的C:\ xampp \ htdocs \ pageB.php中的userID

我做错了什么,以便没有数据发布到第二页? AJAX请求中的alert ();显示正确的数据。

2 个答案:

答案 0 :(得分:4)

ajax()来电完成后,您会立即通过pageB.php再次请求.load() ,完全没有参数。因此错误。

如果您要加载pageB.php的结果,请使用ajax()调用的结果:

success: function(data) {
    $('body').html(data);
}

答案 1 :(得分:1)

您要求pageB.php 两次。一旦获得数据,然后一次,不用数据。第一个请求正常运行,第二个请求给你错误。

只需删除完全不必要的第二个请求:

$('body').load('pageB.php');