在我的PHP代码中,有一个表单里面有多个提交按钮,第一个表单的变量在点击提交按钮后分配了值,而第二个表单的变量类似于 $ _ POST [] 。在这里,我想使用第二个内容中第一个提交的值。
我的代码如下:
<?php
global $name;
//BLOCK1
if($_POST['formSubmit'] == "Register Yourself")
{
global $name;
$name = $_POST['name'];
echo $name;
};
// BLOCK 2
if($_POST['formSubmit1'] == "Register Yourself1")
{
global $name;
$id = $_POST['id'];
echo $id;
echo $name; // I want to print "$name" here
};
?>
<html>
<title>form</title>
<body>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
<b> <label for='name'>Name: </label> </b>
<input type="text" name="name" maxlength="50" value="<?=$name;?>" />
<input type="submit" name="formSubmit" value="Register Yourself" />
<br/><br/>
<b> <label for='id'> id: </label> </b>
<input type="text" name="id" maxlength="50" value="<?=$id;?>" />
<input type="submit" name="formSubmit1" value="Register Yourself1" />
</form>
</body>
</html>
我尝试使用here给出的概念。 在上面的程序中,我已经将变量 $ name 声明为内部和外部的全局变量,以便在第二个程序中使用。
请尝试查找错误,以便我可以在第二个区域内打印...
提前致谢
答案 0 :(得分:2)
Pitchinnate解释了正确的答案,但如果您是PHP的新手,您可能不理解该评论。
您引用的链接询问如何在函数之间共享变量。上面示例中的代码不使用函数;它正在使用&#34;如果&#34;条件。
如果您的代码不起作用,则与您使用$ _POST数组更相关。当用户提交表单时,他们点击哪个按钮并不重要; $ _POST数组将包含该表单中各种输入的所有数据。所以你可能会有更多的成功:
// let's set up the empty variables for clarity's sake
$name = '';
$id = '';
// now check if the $_POST array has stuff in it
if(!empty($_POST))
{
if (!empty($_POST['name'])) {
$name = $_POST['name'];
echo '<p>' . $name . '</p>';
}
if (!empty($_POST['name'])) {
$id = $_POST['id'];
echo '<p>' . $id . '</p>';
}
};
<form action="" method="post">
<b> <label for='name'>Name: </label> </b>
<input type="text" name="name" maxlength="50" value="<?=$name;?>" />
<br/><br/>
<b><label for='id'> id: </label> </b>
<input type="text" name="id" maxlength="50" value="<?=$id;?>" />
<br /><br />
<input type="submit" name="formSubmit" value="Register Yourself" />
</form>
你真的只需要一个提交按钮。当用户单击该按钮时,表单将提交给服务器,服务器会将输入字段中的值放入$ _POST数组中。
此外,如果希望表单提交给自己,您只需指定 action =&#34;&#34; ,服务器将假定您重新提交到当前页面。
答案 1 :(得分:1)
我在想,如果你没有得到你想要的值,那么下面的值是不正确的。
if($_POST['formSubmit'] == "Register Yourself")
if($_POST['formSubmit1'] == "Register Yourself1")
所以,我建议你试试这段代码:
if($_POST['formSubmit'] == "Register Yourself")
{
echo $_POST['name'];
}else{
echo 'formSubmit = '.$_POST['formSubmit'];
}
// BLOCK 2
if($_POST['formSubmit1'] == "Register Yourself1")
{
echo $_POST['id'].'<Br/>';
echo $_POST['name'].'<Br/>';
}else{
echo 'formSubmit1 = '.$_POST['formSubmit'];
它会告诉您POST是否与值
不匹配