gpt4 book ai didi

php - 如何 $_POST 从 PHP 类别列表函数中选择值?

转载 作者:行者123 更新时间:2023-11-30 23:05:30 25 4
gpt4 key购买 nike

我有一个类别列表作为 PHP 函数。我在一个表单中调用这个函数来显示选项。但是我无法获得将所选选项发布到我的数据库的表单。我已经搜索过 SO 和在线,但大多数问题都与作为一个选择选项的值有关,这会更容易。然而,我的名单很长,可能会改变。表单中的其他值已正确发送到数据库,除了我正在处理的图片,但是我找不到从表单下拉列表中插入所选值的方法。

这是我将信息从表单发送到数据库的简单 sql 查询:

if (isset($_POST['submit']))
{
$title = $_POST['title'];
$subtitle = $_POST['subtitle'];
$description = $_POST['description'];
$category= $_POST['category'];
$pic1 = $_POST['pic1'];
$pic2 = $_POST['pic2'];
$pic3 = $_POST['pic3'];
$pic4 = $_POST['pic4'];
$pic5 = $_POST['pic5'];
$item_location = $_POST['location'];
$items_wanted = $_POST['wanted'];
mysql_query("INSERT INTO items_available (title, subtitle, description, category, image_path1, image_path2, image_path3, image_path4, image_path5, item_location, items_wanted) VALUES ('$title', '$subtitle', '$description', '$category', '$pic1', '$pic2', '$pic3', '$pic4', '$pic5', '$item_location', '$items_wanted')")or die(mysql_error());
header('Location: prompt.php?x=8');
}

这是从我的表单中选择类别的字段的代码,它是一个下拉列表:

<div class="field">
<label for="category">Category:</label>
<select id=\"category\" name=\"category\" class=\"searchBox\">
<?php createCategoryList(); ?>
</select>
</div>

这是类别列表函数的代码:

//Creates Category <option>'s for search bar
function createCategoryList(){
if( ctype_digit($_GET['category']) ){ $x = $_GET['category']; }else{ $x = 999; }
echo "<option>All Categories</option>";
$i=0;
while(1){
if(numberToCategory($i)=="Category Does Not Exist"){
break;
}else{
echo " <option value=\"$i\" ";
if($i==$x){echo ' SELECTED ';}
echo " > ";
echo numberToCategory($i);
echo "</option>";
}
$i++;
}
}

//Category Number to String
function numberToCategory($n){
switch($n){
case 0:
$cat = "Antiques";
break;
case 1:
$cat = "Art";
break;
case 2:
$cat = "Automotive";
break;
case 3:
$cat = "Baby";
break;
case 4:
$cat = "Books";
break;
case 5:
$cat = "Business & Industrial";
break;
case 6:
$cat = "Cameras & Photo";
break;
case 7:
$cat = "Clothing & Accessories";
break;
case 8:
$cat = "Collectibles";
break;
case 9:
$cat = "Computers";
break;
case 10:
$cat = "Crafts";
break;
case 11:
$cat = "DVD's & Movies";
break;
case 12:
$cat = "Electronics";
break;
case 13:
$cat = "Health & Beauty";
break;
case 14:
$cat = "Home & Garden";
break;
case 15:
$cat = "Jewelry & Watches";
break;
case 16:
$cat = "Music";
break;
case 17:
$cat = "Pet Supplies";
break;
case 18:
$cat = "Services";
break;
case 19:
$cat = "Sports & Outdoors";
break;
case 20:
$cat = "Sports Memorabilia & Cards";
break;
case 21:
$cat = "Tools & Home Improvement";
break;
case 22:
$cat = "Toys & Hobbies";
break;
case 23:
$cat = "Video Games";
break;
case 24:
$cat = "Other";
break;
default:
$cat = "Category Does Not Exist";
}

目前所选选项的数值被传递,即如果我从下拉列表中选择婴儿选项,那么数字 3 将输入我的数据库。如何将此数值替换为下拉列表中显示的对应值?

非常感谢所有和任何答案。

最佳答案

提交的值是您的选项标签的值属性设置的值。因此,如果您将其更改为以下内容,它将提交类别名称而不是数字:

$catName = numberToCategory($i);
echo "<option value='$catName'>$catName</option>";

然而,马丁在他的评论中提出的建议会更好。包含类别的表应该有一个 ID,这是您应该放入数据库并使其成为外键的字段。

一般来说,在数据库中使用特殊格式的字符串是不好的做法,而是创建一个包含其中字符串的表并在其他表中引用该行 ID。

关于php - 如何 $_POST 从 PHP 类别列表函数中选择值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106505/

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