#php #codeigniter #select
#php #кодовое устройство #выбирать
Вопрос:
В настоящее время я загружаю свои параметры выбора внутри своего контроллера с помощью вызова AJAX. Теперь все параметры загружаются правильно, и я работаю над страницей редактирования, где должна отображаться опция в моей базе данных в качестве выбранного значения. Для этого я использую в своем классе контроллера следующее:
public function getProperties($id){ $option = "lt;option value='0'gt;Selectlt;/optiongt;"; $propertyList = $this-gt;listings_model-gt;get_array_property(''); $property = $this-gt;listings_model-gt;get_property($id); foreach($propertyList as $m){ $option .= "lt;option value='".$m['id']."' '".$property[0]['property'] == $m['id'] ? 'selected=selected':''."'gt;".$m['name']."lt;/optiongt;"; } echo json_encode($option); }
Здесь $propertyList
показаны все значения и $property
показано конкретное выбранное значение в базе данных. Теперь, если я сделаю это без части выбранного атрибута, он покажет все мои значения, но когда я добавлю выбранный атрибут, он не покажет мне ничего и даже выбранного значения. Я проверил свой ответ на это в отладчике, и он выглядит так:
"lt;option value='0'gt;Selectlt;/optiongt;'gt;1095 Residencelt;/optiongt;'gt;118 Downtownlt;/optiongt;'gt;18 Burj Boulevardlt;/optiongt;"
В принципе, при каждом запуске тега опции он отображается только 'gt;
, и я не уверен, как это исправить
Ответ №1:
Вы должны окружить свой тернарный оператор круглыми скобками, чтобы установить его область действия:
$option .= 'lt;option value="' . $m['id'] . '"' . ($property[0]['property'] == $m['id'] ? ' selected="selected"' : '') . 'gt;' . $m['name'] . 'lt;/optiongt;';