2013-03-15 140 views
2

我正在使用javascript multi select功能listbox以及php代碼。在界面中,我們可以選擇多個元素,但是當我使用php代碼從中獲取值時,它只會檢索一個值。有人可以告訴我什麼是錯的嗎?多選功能無法正常工作

的javascript:

<script type="text/javascript"> 
$(function(){ 
    $("select").multiselect(); 
}); 
</script> 

HTML代碼:

<select title="Basic example" multiple="multiple" name="example-basic" size="5"> 
    <option value="Sgoop">Sgoop</option> 
    <option value="Monet">Monet</option> 
    <option value="Hive">Hive</option> 
    <option value="Mahout">Mahout</option> 
    <option value="R">R</option> 
    <option value="Storm">Storm</option> 
    <option value="Flume">Flume</option> 
    <option value="Solr">Solr</option> 
    <option value="Python">Python</option> 
    <option value="Splunk">Splunk</option> 
    <option value="Ruby">Ruby</option> 
    <option value="perl">perl</option> 
    </select> 

MySQL代碼:

$sql="INSERT INTO details (name, type, domain, rights, description, author, version, download) 
VALUES 
('$_POST[compname]','$_POST[examplebasic]','$_POST[examplebasic2]','$_POST[examplebasic3]','$_POST[textarea]','$_POST[name]',1,0)"; 

改變examplebasic到examplebasic []現在我收到的陣列,以串轉換後錯誤。我能做些什麼來解決這個

+0

回答你的問題已經被@ Alireza41給,我只是暗示你,不要在生產現場使用此代碼。將發佈數據直接插入數據庫是一種不好的做法。 – 2013-03-15 08:55:47

回答

1

編輯


改變名稱

name="example-basic[]" 

,並在你的PHP代碼:

$options = json_encode($_POST['example-basic']); 

// and for populating you can use `json_decode` to get the array again 

或者可以拆分數組與,然後在項目它塞爾特到數據庫字段:

$options = implode(',', $_POST['example-basic']); 

看到implode php manual更多說明

// then for populating use `explode` to convert it to array 

$sql="INSERT INTO details (name, type, domain, rights, description, author, version, download) 

VALUES ('$_POST[compname]','$options','example','example2','$_POST[textarea]','$_POST[name]',1,0)"; 
+0

我正在使用它來獲取值並將其存儲在數據庫中。現在它給了我一個字符串轉換錯誤的數組。檢查我編輯了mysql代碼的代碼也 – user2169907 2013-03-15 08:01:04

+0

剛剛獲取數組並將每個選項插入數據庫 – Alireza41 2013-03-15 08:09:47

+0

我必須在選項中手動編碼?如果我不知道有多少人會被選中,怎麼辦? – user2169907 2013-03-15 08:10:00