Выберите тег, в котором не отображается выбранный параметр

#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;';