2

我正在使用 javascriptmulti select函数listboxphp代码。在界面中我们可以选择多个元素,但是当我使用 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[] 现在我得到一个数组到字符串的转换错误。我能做些什么来解决这个问题

4

1 回答 1

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 手册

// 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)";
于 2013-03-15T07:57:35.987 回答