2013-03-15 6 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, я просто намекал вам, не используйте этот код на производственной площадке , Плохая практика заключается в том, чтобы вставлять данные в базу данных напрямую. –

ответ

1

РЕДАКТИРОВАНИЕ


название изменится на

name="example-basic[]" 

и в коде PHP:

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

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

или вы можете разделить массив пунктов с ,, то в SERT его поле базы данных:

$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

+0

просто получите массив и вставьте каждый параметр в базу данных – Alireza41

+0

Мне нужно вручную ввести код в параметрах? что, если я не знаю, сколько будет выбрано – user2169907

Смежные вопросы