HTML-поле со списком для идентификатора записи базы данных - PullRequest
0 голосов
/ 17 мая 2010

Я вполне уверен, что должно быть простое решение моей проблемы, но я новый веб-разработчик и не могу понять это.

На моей странице есть поле со списком, значения которого заполняются из моей базы данных. Когда пользователь отправляет форму, как мне преобразовать эти значения обратно в номера записей в базе данных?

До сих пор я просто выполнял своего рода обратный поиск в моей базе данных, чтобы попытаться получить идентификатор записи. У этого есть довольно много очевидных недостатков, и я уверен, что должен быть лучший путь. Я привык к комбинированным полям MS Forms, где данные записи и ID никогда не разделяются. Но в случае веб-формы у меня нет возможности сделать несколько столбцов в поле со списком, как я привык.

Спасибо! Джефф

Ответы [ 2 ]

2 голосов
/ 17 мая 2010

Элемент option, который используется для отображения параметров в select, имеет как имя, так и свойство значения -

<option value="23434">Name of item with id 23434</option>

В этом случае это значение будет опубликовано на сервере, поэтому вам не нужно выполнять обратный поиск, чтобы получить идентификатор из имени.

0 голосов
/ 17 мая 2010

универсальная функция для создания опций выбора из массива результатов sql или чего-либо еще.

<?php
function buildOptions( $options, $value, $label ){

    foreach ( $options as $option ):    
    echo '<option value="'.$option[ $value ].'">'.$option[ $label ].'</option>'."\n";
    endforeach;
}
?>

использование ...

<select name="dropdown">
<?php
    $arr = array(
       array( 'id'=>1, 'name'=>'item 1'),
        array( 'id'=>2, 'name'=>'item 2'),
        array( 'id'=>3, 'name'=>'item 3'),
        array( 'id'=>4, 'name'=>'item 4')
      );

    buildOptions( $arr, 'id', 'name' ); 
?>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...