2016-06-07 5 views
0

Выбор поля ввода может быть автоматически заполнен из массива. Массив - это список раз.PHP - автопопуляция поля множественного выбора из адресата

Например:

$fruits = ['apple', 'mango', 'orange']; 
    $input = '<select name="fruits" multiple="multiple">'; 
    foreach ($fruits as $key => $fruit) { 
     if (is_array($selected_fruits)) { 
      foreach ($selected_fruits as $f) { 
       $selected = $f === $fruit ? 'selected="selected"' : ''; 
      } 
     } 
     $input .= "<option {$selected} value='{$key}'>$fruit</option>"; 
    } 
    $input .= '</select>'; 

В приведенном выше коде, $selected_fruits плоды, которые выбраны пользователем и сохраняются в базе данных. Они извлекаются как массив (например, ['orange', 'mango']). Как я могу лучше всего заполнить поле выбранными данными из базы данных?

ответ

2

Вы можете проверить, обрабатывается ли $ fruit в массиве $ selected_fruits в цикле и соответственно задает $ selected variable.

$selected_fruits = ['orange', 'mango']; // Coming from your database, populate as empty array even there is no selected fruit coming from database 
$fruits = ['apple', 'mango', 'orange']; 
$input = '<select name="fruits" multiple="multiple">'; 
foreach ($fruits as $key => $fruit) { 
    $selected = in_array($fruit, $selected_fruits) ? 'selected="selected"' : ''; 
    $input .= "<option {$selected} value='{$key}'>$fruit</option>"; 
} 
$input .= '</select>'; 
+0

Спасибо, это хороший способ –

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