如何在php中使用同一表单内的另一个提交按钮从一个提交按钮中使用变量

时间:2013-05-16 17:43:27

标签: php html function variables

在我的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 声明为内部和外部的全局变量,以便在第二个程序中使用。

请尝试查找错误,以便我可以在第二个区域内打印...

提前致谢

2 个答案:

答案 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是否与值

不匹配