试图使用POST调用另一个PHP页面
Trying To Summon Another PHP Page Using POST
我试图从另一个(RumpUserAdministration.php
)召唤一个PHP页面(ModifyUsers.php
)。我试图召唤它作为一个单独的页面,而不是作为用户管理页面的一个小节,并使用POST从RumpUserAdministration.php
到ModifyUsers.php
传递值userID
。
我已经添加了alert
语句,这表明userID
在hidden-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>
- 通过另一个php应用程序将我的项目推送到Github存储库中
- 如何将JavaScript变量的数据传递到另一个php页面
- 将php页面URL中的变量传递给JavaScript和另一个php
- 如何使用javascript/jquery将变量从一个PHP文件传递到另一个PHP文件
- 通过AJAX将从AJAX获取的值发送到另一个PHP文件
- 使用 Ajax 将 Javascript 变量提交到另一个 PHP 文件
- 从 PHP 表中选择值并将其传递给另一个 PHP 页面
- 如何通过选择下拉列表中的选项从另一个 php 文件中获取数据
- 将值从一个 Php 文件传递到另一个 Php 文件
- php中的mysql查询不起作用,但它在另一个php文件中起作用
- 如何在另一个php文件中从ajax获取变量
- 调用另一个php脚本生成图表时出现问题
- 如果jquery脚本's在另一个php页面的php-include语句中使用
- 如何使用wp_localize_script从另一个php文件传递参数
- 将输出从一个 JS 文件传递到另一个 PHP 文件
- 如何包含来自另一个 PHP 文件的 PHP 验证函数
- 在另一个 PHP 文件的 JavaScript 中显示 PHP 文件内容
- 从另一个 php 脚本终止一个脚本
- 如何将 JavaScript 变量传递给另一个 PHP 文件
- 使用 ajax 将文本值传递给另一个 php 文件