PHP: <div style="background: #eff1d4; padding: 10px; margin: 10px; border: 1px #e5e8c5 solid; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;">Марка автомобиля<font color="Red">*</font>: <p1><select name="adp_make" id="adp_make" class="select-forms-ads"> <option value="0">Выберите марку</option> <?php $sql = 'SELECT `id`, `name` FROM `makes` WHERE `is_car` ORDER BY `name`'; $makes = $wpdb->get_results($sql, OBJECT); $makesIds = array(); foreach ($makes as $record) { $makesIds[] = $record->id; echo '<option value="' . $record->id . '">' . $record->name . '</option>'; } ?></select> <?$this->error_msg('adp_make')?></div><div style="background: #eff1d4; padding: 10px; margin: 10px; border: 1px #e5e8c5 solid; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;">Модель<font color="Red">*</font>: <select name="adp_model" id="adp_model" <?php if(isset($_REQUEST['adp_make'])) echo'disabled="true"';?> class="select-forms-ads"> <option value="0">Выберите модель</option> <?php $sql = 'SELECT `id`, `name`, `parent_id` FROM `models` WHERE `parent_id` IN(' . implode(',', $makesIds) . ') ORDER BY `name`'; $models = $wpdb->get_results($sql, OBJECT); if (isset($_POST['adp_make'])){ foreach ($models as $model): if($model->parent_id == $_POST['adp_make']){ echo '<option value="' . $model->id . '">' . $model->name . '</option>'; } endforeach; } ?></select><?$this->error_msg('adp_model')?></div> Через этот код в форме подачи объявления выбирается марка и модель, а когда редактируешь объявление, чтоб выпал список моделей, нужно выбрать другую марку, потом вернутся к своей, и только тогда выподает список моделей по марке, то есть запрос в бд делается только при использовании селекта, а надо сделать чтоб делался при каждой загрузке шаблона я так понимаю, спасибо
из этого блока if(isset($_POST['adp_make'])){ foreach($modelsas$model): if($model->parent_id==$_POST['adp_make']){ echo'<option value="'.$model->id.'">'.$model->name.'</option>'; } endforeach; } удали первую и последнюю строчку тут вопрос, а всегда ли существует $_POST['adp_make'] ? сомневаюсь, но скорее всего это тоже не понадобиться <?phpif(isset($_REQUEST['adp_make']))echo'disabled="true"';?>
это плохо сделанная форма редактирования. как форма подачи она пойдет. исходя из кода при каждом редактировании приходится заново выставлять марку и модель. тут проблема быстро поправить этот код в том что список моделей загружается только после выбора марки(заново), а никакого исходного значения марки в код не передается. в идеале при редактировании через базу запрашивается прошлое значение марки, и оно уже отмечено в списке, а список моделей загружен по значению марки с выбранной ранее моделью. по изменению марки идет ajax запрос и возвращает новый список моделей. напиши skype kamachka812
ну как то так, думаю без запроса тут никак, потому что это единственный селект что работает с базой, хотя adp_make как то делает запрос в базу, потому что при редактировании отображается указанная ранее марка