将$ _POST表示为数组

sar*_*bbb 2 php

我注意到,在发布表单时,字段以数组形式出现.

就像我一样

if(isset($_POST['submit'])) {
print_r($_POST);
}
Run Code Online (Sandbox Code Playgroud)

我通常为表单字段做的是以下内容.

让我说我有这样的事情(这就是我通常这样做的方式)

<form method="POST" action="">
<label>First Name: </label>
<input type="text" name="fname">

<label>Last Name: </label>
<input type="text" name="lname">

<label>Phone: </label>
<input type="text" name="phone">

<input type="submit" name="submit" value="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

然后我会(我不包括现场验证,使其看起来很清楚)

if(isset($_POST['submit'])) {

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];

mysql_query("insert into table(fname,lname,phone) values('$fname','$lname','$phone')");

header("Location: gosomewhere.php");

}
Run Code Online (Sandbox Code Playgroud)

由于后期输出是一种数组格式,我怎么能在处理超过100个字段时写这个?

那些大家伙在那里做得怎么样?或者你是怎么做到的?

编辑:最大的秘密是约60场.我建立这个cms,每个表单收集大量数据,以汇总客户的信息.

Sam*_*son 6

我认为我从来没有见过任何人以单一形式"处理100多个领域".如果是这种情况,您可以考虑进行设计更改,以便在此过程中自动保存部分数据.表单数据总是会自己提交到服务器端的数组中,没有办法解决这个问题.

如果要一次遍历多个字段(假设您在表单中接受多个事件日期),则可以使用数组样式的命名约定:

<input type="text" name="events[]" />
Run Code Online (Sandbox Code Playgroud)

在服务器端访问此数据后,您可以在一个简单的循环中快速迭代它:

foreach ($_POST["events"] as $event) {
  echo $event;
}
Run Code Online (Sandbox Code Playgroud)

如果我错过了你的问题,我很抱歉.

  • @sarmenhbbb:也许你想看一下Zend Framework或Symfony.我想你发现的例子使用了ORM和一些表单框架的组合.如果你不得不对表格进行大量处理,那么一段时间会很烦人.如果你使用一个至少一个表单框架,你可以节省很多时间;)例如Zend表单:http://framework.zend.com/manual/en/zend.form.html (2认同)