如何通过函数传递几个已发布的值

时间:2013-12-19 21:32:59

标签: php forms

好的,标题没有描述问题,但这是我在函数中的表单。

function register(){
  echo "
   <input type='text' name='username' value='' />
   <input type='text' name='email'  value='' />
   <input type='text' name='lastname' value='' />
   ";
}

在这里,我想要的是:如果用户提交表单,我希望输入保持值而不是输入为空。但是,如果表单在函数中,我可以做这样的事情

echo "<input type='text' name='username' value='".if(isset($_POST['username'])){echo $_POST['username']}."' />"

但是,由于这是在函数内部,并且有多个输入,我想找到一种方法,保持输入并通过参数传递它们,如

echo register($submittedArguments)

1 个答案:

答案 0 :(得分:1)

因为$_POST是一个全局变量,所以你可以直接在你的函数中使用它。

因此,您可以这样做:

function register(){
  echo "
   <input type='text' name='username' value='".if(isset($_POST['username'])){echo $_POST['username']}."' />
   <input type='text' name='email' value='".if(isset($_POST['email'])){echo $_POST['email']}."' />
   <input type='text' name='lastname' value='".if(isset($_POST['lastname'])){echo $_POST['lastname']}."' />
   ";
}

如果您具体想要将变量传递给您的函数,您可以执行以下操作:

// the following will create variables based on the key names of the $_POST array.
// this means, $_POST['username'] = "me", will create a variable $username = "me"
// beware that this can create unwanted variables and behaviour
extract($_POST); 

// otherwise, you can manually assign variables one by one, like this:
//   $username = $_POST['username']
// .. and so on..

function register($username = "", $email = "", $lastname = ""){
  echo "
   <input type='text' name='username' value='".echo $username."' />
   <input type='text' name='email' value='".echo $email."' />
   <input type='text' name='lastname' value='".echo $lastname."' />
   ";
}