Я искал на сайте (и через Google), но, я думаю, я мог бы ошибочно относиться к моей проблеме.Динамическое выпадающее меню с жестко запрограммированным выбором
Вот моя ситуация. У меня есть динамически заполненный выпадающий список (который работает), который может в некоторых случаях получать значение для отображения определенной опции.
echo "<td><select id='bids_id' class='ui-widget-content ui-corner-all normalselect' style='width: 150px'>";
$sql = "SELECT
`bids`.`id`,
`bids`.`name`
FROM
`bids`
Inner Join `bids_primes` ON `bids`.`id` = `bids_primes`.`bid_id`
WHERE
`bids_primes`.`tid` = '". $db->real_escape_string($_SESSION['Current_TID']) ."'
";
$querybids = $db->query($sql);
while($row = $querybids->fetch_object()) {
echo "<option value='{$row->id}' ". ($row->id == $timeinfo->relatedbid ? "selected=selected" : "") .">{$row->name}</option>";
}
Теперь единственное, что я пытаюсь сделать, не повезло, чтобы добавить «жёстко прописанные» выбор со значениями «0» и текст «Other». Этот выбор также должен быть связан одним и тем же механиком (где он может быть задан для предварительного выбора).
[UPDATE] Чтобы помочь с контекстом моей ситуации, вот код, который предшествует этой части. Это PHP-файл, который вызывается из другого файла PHP (такого же принципала, как div). Предложенный PHP - это форма ввода, которая используется как для ввода новых данных, так и для изменения существующих данных (и это взаимодействует с базой данных).
Сценарий знает, добавляет ли он или изменяет его на основе «entry_id», который он получает как paramater, немного как функция.
if(isset($_REQUEST['entry']) && ($_REQUEST['entry'] > 0)) {
$sql = "SELECT
`cap_plan`.`entryid`,
`cap_plan`.`startdate`,
`bids`.`name`,
`cap_plan`.`duration`,
`cap_plan`.`description`,
`cap_plan`.`relatedbid`
FROM
`cap_plan`
LEFT JOIN
`bids` ON `cap_plan`.`relatedbid` = `bids`.`id`
WHERE
`cap_plan`.`entryid` = '". $db->real_escape_string($_REQUEST['entry']) ."'
";
$timeinfo = $db->query($sql)->fetch_object();
}
else {
$timeinfo = new StdClass();
$timeinfo->entryid = 0;
$timeinfo->employee = $_SESSION['name'];
$timeinfo->startdate = date("Y-m-d");
$timeinfo->duration = "";
$timeinfo->description = "";
$timeinfo->relatedbid = "0";
}
Вот скриншот, чтобы проиллюстрировать все: http://i.imgur.com/EYcXfO9.png
Почему бы не просто отменить выбор перед вашим оператором 'while'? 'echo" <значение опции = \ "0 \" ". ($ row-> id == $ timeinfo-> relatedbid? "selected = selected": ""). "> Другое" '? – ChunkyBaconPlz
Я не знал, что это возможно. Позвольте мне попробовать это и сразу обновить нить. – guihamel
Просто FYI, вы не получили объект '$ row', прежде чем вы назовете' while', поэтому '$ row' будет неопределенным, и вам понадобится другой способ определить, является ли опция« Другой » для выбора. – ChunkyBaconPlz