试图使用POST调用另一个PHP页面

Trying To Summon Another PHP Page Using POST

本文关键字:另一个 PHP 页面 调用 POST      更新时间:2023-09-26

我试图从另一个(RumpUserAdministration.php)召唤一个PHP页面(ModifyUsers.php)。我试图召唤它作为一个单独的页面,而不是作为用户管理页面的一个小节,并使用POST从RumpUserAdministration.phpModifyUsers.php传递值userID

我已经添加了alert语句,这表明userIDhidden-id-field中存储在修改用户页面的召唤之前,因此可用于张贴,但它没有传输到修改用户页面。

我还添加了alert语句,指示在页面执行的那些点上正在使用哪个服务器请求方法。页面上的其他按钮也同样需要调用其他页面。

我的问题是:我如何使用POST调用我的修改用户页面,以便我可以使用POST传输我的值?

我能够同时使用GET和SESSION变量,但是这个特殊的场景关注的是POST - GET和SESSION变量不被使用。

关于这个问题,我咨询了我的同学和所有的讲师,并在20多个不同的网站和多次搜索中寻找解决方案。没有一个"解决方案"被证明是有效的——人们现在和我一样困惑,网页使用的方法只适合更新源页面,而不是召唤一个新的,或者干脆就是错误的。

下面是我用来解决这个问题的文件。

RumpUserAdministration.php

<!DOCTYPE html>
<html>
    <head>
        <meta name    = "viewport"
              content = "width=device-width, initial-scale=1.0"
        >
        <meta charset = "utf-8">
        <link href = "CSS/RumpIntranetProject.css"
              rel  = "stylesheet"
              type = "text/css"
        >
    </head>
    <body>
<?php
        echo "<script>alert( '"" . $_SERVER[ "REQUEST_METHOD" ] . "'" )</script>";
?>
        <form id     = "entire-page"
              action = "RumpUserAdministration.php"
              method = "post"
        >
            <div id = "user-name-list-section">
                <div id = "user-name-list">
                    <div id      = "ID15"
                         class   = "list-item row"
                         name    = "ID15"
                         onclick = "userNameListItemClicked( '15' )"
                    >
                        SAMPLE USER 001
                    </div>
                    <div id      = "ID16"
                         class   = "list-item row"
                         name    = "ID16"
                         onclick = "userNameListItemClicked( '16' )"
                    >
                        SAMPLE USER 002
                    </div>
                </div>
            </div>
            <input id      = "user-administration-button-delete"
                   name    = "delete-submit"
                   onclick = "loadDeleteUsers()"
                   type    = "submit"
                   value   = "Delete"
            >
            <input id      = "user-administration-button-modify"
                   name    = "modify-submit"
                   onclick = "loadModifyUsers()"
                   type    = "submit"
                   value   = "Modify"
            >
            <input id    = 'hidden-id-field'
                   name  = 'userID'
                   type  = 'hidden'
                   value = ''
            >
        </form>
        <?php
            if ( $_SERVER[ "REQUEST_METHOD" ] == "POST" )
            {
                if ( isset( $_POST[ 'modify-submit' ] ) )
                {
                    echo "<script>document.getElementById( 'hidden-id-field' ).value = '"" . $_POST[ 'userID' ] . "'"</script>";
                    echo "<script>alert( '"hidden-id-field (userID) : '" + document.getElementById( 'hidden-id-field' ).value )</script>";
                    echo "<script>alert( '"" . $_SERVER[ "REQUEST_METHOD" ] . "'" )</script>";
                    echo '<script>window.location = "ModifyUsers.php"</script>';
                }
                else
                {
                    echo "<script>alert( 'Unexpected Administration POST encountered.' )</script>";
                }
            }
        ?>
        <script>
            var existingSelection = null;
            function loadModifyUsers()
            {
                document.getElementById( 'hidden-id-field' ).value = existingSelection;
                alert( "Presubmit" );
                document.getElementById( 'entire-page' ).submit;
            }
            function userNameListItemClicked( userID )
            {
                existingSelection = 'ID' + userID;
                document.getElementById( "user-administration-button-modify" ).style.cursor = "pointer";
                document.getElementById( "user-administration-button-modify" ).disabled = false;
            }
        </script>
    </body>
</html>

ModifyUsers.php

<!DOCTYPE html>
<html>
    <head>
        <meta name    = "viewport"
              content = "width=device-width, initial-scale=1.0"
        >
        <meta charset = "utf-8">
        <link href = "CSS/RumpIntranetProject.css"
              rel  = "stylesheet"
              type = "text/css"
        >
    </head>
    <body>
<?php
        echo "<script>alert( 'In further' )</script>";
        echo "<script>alert( '"hidden-id-field (userID) : '" + document.getElementById( 'hidden-id-field' ).value )</script>";
        echo "<script>alert( '"userID : '" + '"" . $_POST[ 'userID' ] . "'" )</script>";
?>
    </body>
</html>

RumpIntranetProject.css

html,
*
{
    border      : 0;
    box-sizing  : border-box;
    margin      : 0;
    padding     : 0;
}
.list-item
{
    display : block;
}
.list-item:hover
{
    background-color : #00ffff;
}
.row:after
{
    clear   : both;
    content : "";
    display : block;
}
#user-name-list
{
    border       : 1px;
    border-color : black;
    border-style : solid;
    overflow-y   : scroll;
    width        : 300px;
}

我不确定这个问题是否是由于遗漏的include,打字错误,错误的命令或任何一个,我不能说故障在哪里。因此,为了保证完整性,我必须包括每个最小化文件的全部内容。我在琢磨"最小"的定义。:)

看起来你正在使用JavaScript更改页面:

echo '<script>window.location = "ModifyUsers.php"</script>';

你在这里做的加载ModifyUsers.php,但是[因为这是一个GET]没有什么可以通过POST传递。

你需要做的是改变action的形式去ModifyUsers.php:这样你的POST数据被传递到正确的页面。

这是我刚刚想到的一个答案。如果有其他的方式来回答这个问题,请把它们贴出来。

我已经将每个Submit按钮放置在它自己的表单中,包括每个表单中的隐藏字段。

每一个按钮都成功地召唤了它的形式,而不是其他的东西。

以下是我使用的RumpUserAdministration.php的修改版本(ModifyUsers.php和RumpIntranetProject.css与问题相同)

<!DOCTYPE html>
<html>
    <head>
        <meta name    = "viewport"
              content = "width=device-width, initial-scale=1.0"
        >
        <meta charset = "utf-8">
        <link href = "CSS/RumpIntranetProject.css"
              rel  = "stylesheet"
              type = "text/css"
        >
    </head>
    <body>
<?php
        echo "<script>alert( '"" . $_SERVER[ "REQUEST_METHOD" ] . "'" )</script>";
?>
        <div id = "user-name-list-section">
            <div id = "user-name-list">
                <div id      = "ID15"
                     class   = "list-item row"
                     name    = "ID15"
                     onclick = "userNameListItemClicked( '15' )"
                >
                    SAMPLE USER 001
                </div>
                <div id      = "ID16"
                     class   = "list-item row"
                     name    = "ID16"
                     onclick = "userNameListItemClicked( '16' )"
                >
                    SAMPLE USER 002
                </div>
            </div>
        </div>
        <form id     = "form-delete"
              action = "Index.php"
              method = "post"
        >
            <input id    = 'hidden-id-field-delete'
                   name  = 'userID'
                   type  = 'hidden'
                   value = ''
            >
            <input id      = "user-administration-button-delete"
                   name    = "delete-submit"
                   onclick = "loadDeleteUsers()"
                   type    = "submit"
                   value   = "Delete"
            >
        </form>
        <form id     = "form-modify"
              action = "ModifyUsers.php"
              method = "post"
        >
            <input id    = 'hidden-id-field-modify'
                   name  = 'userID'
                   type  = 'hidden'
                   value = ''
            >
            <input id      = "user-administration-button-modify"
                   name    = "modify-submit"
                   onclick = "loadModifyUsers()"
                   type    = "submit"
                   value   = "Modify"
            >
        </form>
        <script>
            var existingSelection = null;
            function loadDeleteUsers()
            {
                document.getElementById( 'hidden-id-field-delete' ).value = existingSelection;
            }
            function loadModifyUsers()
            {
                document.getElementById( 'hidden-id-field-modify' ).value = existingSelection;
            }
            function userNameListItemClicked( userID )
            {
                existingSelection = 'ID' + userID;
                document.getElementById( "user-administration-button-modify" ).style.cursor = "pointer";
                document.getElementById( "user-administration-button-modify" ).disabled = false;
            }
        </script>
    </body>
</html>