我是新手,所以请原谅我,如果我重复一遍。我不是一个PHP大师,但作为我学习经历的一部分,我遇到了绊脚石。
我有一个HTML表单,其中有5个下拉选择元素。它们都来自数据库,其中有大约20个水果名称。我的意思是,用户不允许在其中选择一个复制的水果。例如; 如果用户在第一个选择框中选择“香蕉”,然后用户在一个或多个选择框中选择“香蕉”,它将只打印我们的警告消息,表示存在重复值。
以下是表格:
<form action="<?php echo htmlspecialchars($_SERVER[" PHP_SELF "]);?>" method="post">
<select name="plate1">
<?php foreach ($fruits as $fruit) { ?>
<option value="<?php echo $fruit['id']; ?>">
<?php echo $fruit['name']; ?>
</option>
<?php
}
?>
</select>
<select name="plate2">
<?php foreach ($fruits as $fruit) { ?>
<option value="<?php echo $fruit['id']; ?>">
<?php echo $fruit['name']; ?>
</option>
<?php
}
?>
</select>
<select name="plate3">
<?php foreach ($fruits as $fruit) { ?>
<option value="<?php echo $fruit['id']; ?>">
<?php echo $fruit['name']; ?>
</option>
<?php
}
?>
</select>
<select name="plate4">
<?php foreach ($fruits as $fruit) { ?>
<option value="<?php echo $fruit['id']; ?>">
<?php echo $fruit['name']; ?>
</option>
<?php
}
?>
</select>
我知道,创建表单元素可能有更简单的方法而不重复自己,但正如我所说,我在这里学习,你的建议真的很受欢迎。
感谢您的帮助!
答案 0 :(得分:0)
您可以使用类似的内容来构建您的选择框:
<?php
for ($i=1;$i<=5;$i++) {
echo '<select name="plate['.$i.']">';
foreach ($fruits as $fruit) {
echo '<option value="'.$fruit['id'].'">'.$fruit['name'].'</option>';
}
echo '</select>';
}
在提交表单后在PHP中检索这些值时,它们都将位于数组$_REQUEST['plate']
中。您可以使用以下方法检查它们是否都是唯一的(忽略未使用的选择框):
<?php
if (count(array_unique(array_filter($_POST['plate']))) === count(array_filter($_POST['plate']))) {
// success
}
else {
$message = "Duplicate values detected.";
}
然后,您可以使用$message
执行某些操作,将其显示给用户。