如何使用复选框形式选择 PHP 多维数组项
Posted
技术标签:
【中文标题】如何使用复选框形式选择 PHP 多维数组项【英文标题】:How to Select PHP Multidimensional Array items with Checkbox Form 【发布时间】:2022-01-13 02:52:21 【问题描述】:我对 php 很陌生,而且只是一般的代码,所以如果我的代码看起来一团糟,我深表歉意。
我创建了一个多维数组,当某些复选框被选中并通过表单提交时,我只希望显示选定的数组项。例如,John Smith 的信息和图像只有当他被选中时。
这是我的多维数组:
<?php
$characters = array (
'john' =>
array (
'first_name' => 'John',
'last_name' => 'Smith',
'age' => '40',
'image_url' => 'images/john.png',
),
'jane' =>
array (
'first_name' => 'Jane',
'last_name' => 'Doe',
'age' => '30',
'image_url' => 'images/jane.png',
),
'sara' =>
array (
'first_name' => 'Sara',
'last_name' => 'Johnson',
'age' => '10',
'image_url' => 'images/sara.png',
)
)
?>
这是我的 html 表单:
<h3 class="form__heading"> Select characters to show </h3>
<form method="post">
<ul class="form__items">
<!--John-->
<li class="form__item">
<label for="john">John Smith </label>
<input id="john" type="checkbox" name="john">
</li>
<!--Jane-->
<li class="form__item">
<label for="jane">Jane Doe </label>
<input id="jane" type="checkbox" name="jane">
</li>
<!--Sara-->
<li class="form__item">
<label for="sara">Sara Johnson </label>
<input id="sara" type="checkbox" name="sara">
</li>
</ul>
<!--Button-->
<input class="form__button" type="submit" value="Show Characters">
</form>
我尝试过 foreach 和 for 循环,但我认为我做错了。非常感谢任何帮助!
【问题讨论】:
那么如果你选择两个列表项,应该只显示这两个的信息? 是的!这就是我希望做的。 那么您面临的问题是什么? 我无法弄清楚 PHP 以在提交表单时显示所选列表项。 请发布您的 PHP 脚本(除了数组) - 至少显示您尝试过的内容 - 您提到您已经尝试过 foreach /looping 【参考方案1】:我解决了你的问题,请查看我在下面给你的脚本
html代码会是这样的
<form action="index.php" method="post">
<ul class="form_items">
<!--John-->
<li class="form_item">
<label for="john">John Smith </label>
<input id="john" type="checkbox" name="characters[]" value="john">
</li>
<!--Jane-->
<li class="form__item">
<label for="jane">Jane Doe </label>
<input id="jane" type="checkbox" name="characters[]" value="jane">
</li>
<!--Sara-->
<li class="form_item">
<label for="sara">Sara Johnson </label>
<input id="sara" type="checkbox" name="characters[]" value="sara">
</li>
</ul>
php脚本会是这样的
<?php
$characters = array (
'john' =>
array (
'first_name' => 'John',
'last_name' => 'Smith',
'age' => '40',
'image_url' => 'images/john.png',
),
'jane' =>
array (
'first_name' => 'Jane',
'last_name' => 'Doe',
'age' => '30',
'image_url' => 'images/jane.png',
),
'sara' =>
array (
'first_name' => 'Sara',
'last_name' => 'Johnson',
'age' => '10',
'image_url' => 'images/sara.png',
)
);
if(isset($_POST['submit']))
$selectedCharacter = $_POST['characters'];
foreach ($selectedCharacter as $Character)
echo "first_name:- ".$characters[$Character]['first_name'].'<br>';
echo "last_name:- ".$characters[$Character]['last_name'].'<br>';
echo "age:- ".$characters[$Character]['age'].'<br>';
echo "image_url:- ".$characters[$Character]['image_url'].'<br><br>';
?>
参考本频道https://www.youtube.com/channel/UCnqWFcMpFA_dsxEzt7lKxJA
【讨论】:
嘿,这是一个很好的答案!由于 OP 通常是编码新手,我想我会解释一下您所做的事情。复选框的名称已更改为“characters[]”,这意味着发布的数据将被视为一个数组。 CodeAlgo 然后将字符名称设置为该数组中的一个值。在 PHP 脚本中,foreach 循环遍历该数组,使用该值作为键从您现有的 $characters 数组中选择数据。 非常感谢你们!这对我有用,我很感激帮助我朝着正确的方向前进。我的小项目可能看起来不是最好的,但至少现在它可以工作了! :) @n1021 如果这对您有用,请标记为已接受以上是关于如何使用复选框形式选择 PHP 多维数组项的主要内容,如果未能解决你的问题,请参考以下文章