2013-08-19 9 views
0

Я пытаюсь вставить несколько значений выбора в базу данных.Как вставить несколько значений выбора в базу данных?

HTML

<select style="width:175px" id="first" multiple="true"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option>   
</select> 
</div> 

<div class="mid"> 
<button type="button" class='add'> > </button> 
<button type="button" class='remove'> < </button> 
<button type="button" class='add-all'> >>> </button> 
<button type="button" class='remove-all'> <<< </button> 
</div> 

<div class="end"> 
<select style="width:175px" id="second" name="second[]" multiple="true"> 
</select> 
</div> 

<div style="clear:both;"></div> 

Javascript:

$('.add').click(function(){ 
$('#first option:selected').appendTo('#second'); 
}); 
$('.remove').click(function(){ 
$('#second option:selected').appendTo('#first'); 
}); 
$('.add-all').click(function(){ 
$('#first option').appendTo('#second'); 
}); 
$('.remove-all').click(function(){ 
$('#second option').appendTo('#first'); 
}); 

PHP (его только небольшая часть кода PHP)

$formvars['second'] = $this->Sanitize($_POST['second']); 
$insert_query = 'insert into 'comments'(second) values ("' . $this->SanitizeForSQL($formvars['second']) . '",)'; 

Его вставляя только слово "Массив" в база данных. Есть идеи?

+0

Это потому, что ваш код $ this-> SanitizeForSQL ($ formvars ['second']) возвращает массив, и он не может быть вставлен таким образом. Посмотрите на запрос пакетной вставки. –

ответ

0
var selectArr = []; 

$('#first option').each(function() { 
    selectArr.push($(this).val()); 
}); 

Теперь вы можете передать selectArr на свой сервер, а затем проверить, что вы получаете.

0

Если это вставить массив, вы должны перебирать на нем с помощью для петель соединить все значения в одной строке:

<?php 
    $toInsert = ''; 
    foreach($_POST['second'] as $p){ 
     $toInsert = $toInsert . $p; 
    } 
?> 

в $ toInsert строка является тот, который вы должны написать в БД.