我有一個類別列表作爲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將被輸入到我的數據庫中。如何將該數值替換爲它出現在下拉列表中的相應值?
感謝所有和任何答案。
我會把它作爲數字。如果您處理關係數據庫,您可以使用類別設置數據庫,並且數字將引用所選類別。這樣編程更好。你的問題是你沒有返回$ cat變量(return $ cat;)...但是我會重新思考這個想法並真正使用數據庫。 –
您應該用一個基本的字符串數組替換整個switch語句。只需在數組中對數值進行常規循環即可。這並不能回答你的問題只是一個建議。 –