0

在我正在关注的“学习mysql”书中有以下行(简化......它从服务器获取数据并执行其他操作,但我对其进行了编辑,因此要关注的主要部分就在那里)。

<input type="checkbox" value="1" name="todelete[]" />

它有什么作用,这种语法有什么名字吗?我猜我们没有提到就像 $_POST[todelete[]]

本书在 foreach 循环中使用它:

foreach ($_POST['todelete'] as $delete_id)

我无法将手指放在它上面……但是就我过去如何使用 name 属性而言,这并不是点击。

4

2 回答 2

2

它只是声明一个数组来接受多个答案。

此外,您可以在表单输入中使用多维数组:

HTML:

<input name="data[customer][firstname]" type="text" />
<input name="data[customer][lastname]" type="text" />

PHP:

$firstname = $_POST['data']['customer']['firstname'];

在您的示例中,数据将存储$_POST为...

$_POST['todelete']

...这将是一个复选框值数组。

为了foreach使 有意义,您需要了解有关复选框的信息,以便对数据做一些有用的事情。你可以很容易地使用...

$post = $_POST['todelete'];

$post[0]
$post[1]
... etc.

特别有用的是 PHP 可以处理索引表单名称的方式。例如,您可以...

<input name="employee[0][firstname]" value="John"/>
<input name="employee[0][lastname]" value="Smith"/>

<input name="employee[1][firstname]" value="Joe"/>
<input name="employee[1][lastname]" value="Bloggs"/>

它将返回一个值数组作为$_POST['employee']...

array (
    0 => array('firstname' => 'John', 'lastname' => 'Smith'),
    1 => array('firstname' => 'Joe', 'lastname' => 'Bloggs'),
)
于 2013-05-29T00:46:33.040 回答
1

它只是一个数组,它在 PHP 中被解释为一个数组。您不会像 那样访问数组foo[arr[]],但像foo['arr']which 会为您提供要循环的数组。想想这个例子:

$post = array('todelete' => [1,2,3,4]);
$todelete = $post['todelete'];
var_dump($todelete); //=> [1,2,3,4]
于 2013-05-29T00:47:38.000 回答