У меня есть поле выбора, которое отображает имя и фамилию для списка людей. Но я хочу добавить идентификатор для каждого из них и сделать его невидимым.
EX. если у нас есть Джон Смит с ID 001 Я хочу написать Джон Смит: 001 , но это следует рассматривать как Джон Смит. Важно, что идентификатор не только невидим, но и не занимает места.
Это мой код:
$result = pg_query(connect(), "SELECT id, name, surname FROM person ORDER BY name ASC, surname ASC");
$person = pg_fetch_all($result);
echo '<select value="Person" name="person">';
for($i=0; $i<sizeof($person); $i++) {
$person = $person[$i]['name'].' '.$person[$i]['surname'];
echo "<option>".$person."<span hidden>:".$person[$i]['name']."</option>"; }
echo '</select>';
однако это не работает, потому что идентификатор остается видимым
Попробуйте установить значение с объединенным именем и идентификатором (далее к моему комментарию):
<?php
$result = pg_query(connect(), "SELECT id, name, surname FROM person ORDER BY name ASC, surname ASC");
$person = pg_fetch_all($result); ?>
<select name="person">
<?php
for($i=0; $i<sizeof($person); $i++) {
$name = $person[$i]['name'].' '.$person[$i]['surname']; ?>
<option value="<?php echo $name.":".$person[$i]['id']; ?>"><?php echo $name; ?></option>
<?php
} ?>
</select>
Дает вам что-то вроде:
Array
(
[person] => doug johnson:1
)
Вы можете использовать значение option, чтобы содержать как name, так и id с разделителем. И во время чтения вы можете разделить его снова.
<option value="$person[$i]['name']:$person[$i]['id']">
Вы просто должны оставить значение другим и заголовок другим.
Итак, код должен быть:
Позвольте мне упростить $ name — это полное имя человека, а $ id — его идентификатор.
<option value="<?php echo $name.":".$id?>"><?php echo $name;?></option>
Похоже, работу можно сделать немного чище. Но в любом случае дело в том, что вы можете использовать атрибут value для отправки на сервер значения, отличного от того, что видит пользователь.
Кстати, имейте в виду, что пользователь всегда может увидеть значение, увидев исходный код в браузере. (если это не то, что вам нужно, вам придется изменить часть значения в php-коде, иначе этот код будет полезен)