Здравствуйте. Использую PHP+Yii2 framework. Мне нужно динамически изменять варианты input в чекбокс листе. По нажатию на определенный элемент - посылаю запрос в контроллер, с параметрами нужных input'ов. Из контроллера возвращаю html теги с этими input'ами. Выглядит это вот так
$('input[name="area[]"]').change(function() {
$.post("/site/complexcity?city="+$(this).val()+"&type="+check_now, function( data ) { //передаем параметры
$("#complex").html(data); //вставляем в блок вывода чекбокс листа
});
Контроллер
public function actionComplexarea($area, $type)
{
$data = ArrayHelper::map(Complex::find()->where(['area_id' => $area])->andWhere(['type' => $type])->all(), 'id', 'name');
foreach ($data as $id => $value)
{
echo "<div class=\"custom-checkbox\">
<input class='an_chekbox' type='checkbox' name='complex_area' value='$id' id='complex_area$id'>
<label for='complex_area$id'>$value</label>
</div>";
}
//echo Json::encode($data);
}
Само поле
<?= $form->field($model, 'complex', ['options' => ['tag' => false]])->checkboxList(ArrayHelper::map(\common\models\Complex::find()->where(['type' => 1])->all(), 'id', 'name'),
[
'item' => function ($index, $label, $name, $checked, $value) {
$check = $checked ? ' checked="checked"' : '';
return "<div class=\"custom-checkbox\">
<input class='an_chekbox' type='checkbox' name='$name' value='$value' id='$name$value' $check>
<label for='$name$value'>$label</label>
</div>";
}
])->label(false); ?>
По такой схеме все работает, запрос возвращает с нужными input'ами, но каждый раз заменяет все элементы на новые. Вот из-за этого атрибута $("#complex").html(data);
- Возвращает или изменяет html-содержимое выбранных элементов.
Скажите, как можно не заменять, а добавлять input'ы в checkboxList ?
UPD. заменил html на append - $("#complex").append(data);
. Теперь при каждом клике отправляется запрос и добавляется элемент . Вопрос можно ли проверить input на уникальность(по значению $value) , и если да - то добавлять этот input в checkbox list? Если распечатать переменную data - будет код вот такого типа -
<div class="custom-checkbox">
<input class='an_chekbox' type='checkbox' name='complex_city' value='2' id='complex_city2'>
<label for='complex_city2'>GG complex</label>
</div>
<div class="custom-checkbox">
<input class='an_chekbox' type='checkbox' name='complex_city' value='3' id='complex_city3'>
<label for='complex_city3'>New GK</label>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Решил изучить php фрэймворк - Yii2Но столкнулся с проблемой роутинга
Подскажите, как разбить строку формата: 4044_90548_90791, чтобы в итоге получилось: array(4044, 4044_9054, 4044_90548_90791);
Изучаю php, читаю книги и нигде не могу найти как найти сервер? Где писать то? Где все пишут? Сервера дорогие