2013-03-15 141 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