gpt4 book ai didi

html - 如何在 HTML 表单中创建一组项目的数组

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:38 24 4
gpt4 key购买 nike

我正在尝试按照以下内容创建一个表单(我知道这不是有效的 HTML,但它有望说明我尝试这样做的内容和原因):

<form method="post" action="test.php">
<input type="text" name="teamName">
<br />Players:
<grouping name="players[]">
<input type="text" name="firstName"><br />
<input type="text" name="lastName"><br />
</grouping>
<input type="submit" value="submit">
</form>

通过 javascript,我会根据需要多次添加分组元素。提交表单后,我可以按如下方式访问分组元素中的项目:

foreach ($players as $player) {
$fName = $player->firstName;
$lName = $player->lastName;
}

也就是说,在我开始之前,我不知道球队会有多少球员,但我知道一个球员长什么样。我想把这一切都放在一个屏幕上,这样用户就可以在一个页面上将球员添加到他们的球队中,我希望能够将字段分组添加为一个组。但是,我也希望将该分组存储为一个数组,而不是做类似的事情:

<form method="post" action="test.php">
<input type="text" name="teamName">
<br />Players:
<input type="text" name="firstName[]"><br />
<input type="text" name="lastName[]"><br />
<input type="submit" value="submit">
</form>

这意味着我可以遍历分组中的各个元素,但不能遍历整个分组。

有什么想法可以实现吗?

最佳答案

不过,看看您的结构,我建议您使用更健壮的数组结构:

foreach ($players as $i => $player) {
$fName = $player->firstName;
$lName = $player->lastName;

echo '<input type="text" name="players['.$i.'][firstName]" value="'.$fName.'" />';
echo '<input type="text" name="players['.$i.'][lastName]" value="'.$lName .'" />';

}

提交后,您将获得:

players => Array(
[0] => Array (
firstName => a name,
lastName => another name,
),
[1] => Array (
firstName => a name,
lastName => another name,
),
etc...
)

或者,您可以在最后一个输入字段中递增 $i++,而不是在 foreach 语句中生成 $i,但我发现出于调试目的,通常很高兴知道您使用的是原始数组中的哪个索引。

我建议在您的问题示例中使用这种方法,因为它还允许您通过 $_POST['players'] 进行计数/迭代

希望对你有帮助

关于html - 如何在 HTML 表单中创建一组项目的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com