2011-07-13 42 views
1

我想通過選項標籤發送名稱和ID字段。現在設置它只是發送ID,如何發送名稱以及將其插入數據庫?如何通過選擇發送兩個值?

<select name="category_id" size="1"><br />'; 

$sql = "SELECT id, name 
      FROM categories 
     ORDER BY name"; 

$rs = mysql_query($sql); 

while($row = mysql_fetch_array($rs)) { 
    echo "<option value=\"".$row['id']."\">".$row['name']."</option>\n "; 
} 

echo' 
</select> 
+0

你想CATEGORY_ID是多選或做你希望它是一個單一的選擇,返回的ID和名稱? – Schwartzie

+0

如果您看到用戶將能夠看到alist或選項「名稱」,則名稱字段內的所有值都將可見,並且每個值的ID將通過選項值發送。但我也想要發送名稱。我認爲這可能是一個單一的選擇,同時返回的ID和名稱。一旦用戶選擇了一個名稱,那麼它將在數據庫中插入id和名稱。 – user841823

回答

1

使期權價值有這樣的格式:name$id

<select name="category_id" size="1"><br />'; 

    $sql = "SELECT id, name 
       FROM categories 
      ORDER BY name"; 

    $rs = mysql_query($sql); 

    while($row = mysql_fetch_array($rs)) { 
     echo "<option value=\"".$row['name']."$".$row['id']."\">".$row['name']."</option>\n "; 
    } 

    echo' 
</select> 

那麼當您檢索數據,你可以爆發,作爲這樣

$option = explode("$", $_POST['category_id']); 
echo $option[0]; // Name 
echo $option[1]; // Id 
+0

爲插入我可以這樣做\t $ sqlinsert2 =「INSERT INTO products (category,category_id) VALUES('$ category',$ category_id)」;聲明它我想這個$ category = $ option [0]; $ category_id = $ option [1]; – user841823

+0

是的。 '$ sqlinsert2 =「INSERT INTO products(category,category_id)VALUES($ option [0],$ option [1])」;'假設您給出的名稱是類別名稱。 – brenjt

+0

噢,是的,你在現場釘了它......謝謝。我花了一段時間,因爲我需要編輯代碼中的某些內容來調整您的建議。謝謝。 – user841823

1

如果我理解正確的話,你想隱藏<input>場和一些JavaScript寫入的<option>的文本。

但是,我不能想到一個單一的應用程序,這是可取的...數據庫規範化的重點是避免重複。

+0

好的,Schwartzie澄清了它的一個選擇,它將ID和名稱都返回給表單方法。 – user841823

相關問題