【问题标题】:Multi select function not working properly多选功能无法正常工作
【发布时间】:2013-03-03 20:46:32
【问题描述】:

我正在为listbox 使用javascript multi select 函数以及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[] 之后,现在我得到一个数组到字符串的转换错误。我该怎么做才能解决这个问题

【问题讨论】:

  • @Alireza41 已经给出了您的问题的答案,我只是在提示您,不要在生产站点中使用此代码。将帖子数据直接插入数据库是不好的做法。

标签: javascript jquery mysql html


【解决方案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)";

【讨论】:

  • 我正在使用它来获取值并将其存储在数据库中。现在它给了我一个数组到字符串的转换错误。检查代码我也编辑了mysql代码
  • 只需获取数组并将每个选项插入数据库
  • 我必须在选项中手动编码?如果我不知道会选择多少人怎么办
  • 留给用户决定如何对这部分进行硬编码。
  • 你可以使用json_encode将数组转换为字符串然后插入到数据库中
猜你喜欢
  • 2017-09-23
  • 2013-11-06
  • 2013-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多