Привет, у меня есть форма выбора категорий, делаю так чтобы при выборе разных категорий выводились разные формы
Принцип работы такой, в php коде когда я выбираю категорию, тут присваивается число в value
'<input type="hidden" id="board-category_id" name="Board[category_id]" value="'.($model->isNewRecord ? '' : $category_id).'"/>
По идее далее js код должен видеть это число и выводить в этом блоке нужную форму
Но ничего не выводиться Почему?
Вот php код
<span class="element"></span>
<div id="primer">
<?php
function getChildOptions($cats, $offset) {
$str = "<ul class='dropdown-menu'>";
foreach($cats as $cat) {
if (empty($cat['children'])) {
$str .= "<li class='cat-select-item' data-value='".$cat['id']."' >".$offset.$cat['name']."</li>";
} else {
$str .= "<li class='cat-select-item dropdown-submenu' data-value='".$cat['id']."' >".$offset.$cat['name'];
if (!empty($cat['children'])) $str .= getChildOptions($cat['children'], $offset);
$str .= "</li>";
}
}
$str .= "</ul>";
return $str;
}
$categories = \common\models\Category::getCategorys();
if(!$model->isNewRecord){
$id_category = \common\models\Board::getBoard($model->id);
$category = \common\models\Category::getOneCategory($id_category->category_id);
if($id_category->category_id == 0){
$category_name = 'Выберите категорию...';
$category_id = '';
}else{
$category_name = $category->name;
$category_id = $id_category->category_id;
}
}
$dropdownMenu = '<div class="dropdown"><button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">'.($model->isNewRecord ? 'Выберите категорию...' : $category_name).'<span class="caret"></span></button>' . getChildOptions($categories, '') . '<input type="hidden" id="board-category_id" name="Board[category_id]" value="'.($model->isNewRecord ? '' : $category_id).'"/></div>';
echo $dropdownMenu;
?>
</div><br />
Вот js код
<script>
$(function() {
$('#primer').change(function () {
var vibor = $('#primer').find('input').val();
if(vibor == '16') {
$('.element').text('Контент 1');
} else if(vibor == 'str2') {
$('.element').text('Контент 2');
} else if(vibor == 'str3') {
$('.element').text('Контент 3');
}
});
});
</script>
Если выбрать категорию и через консоль браузера поискать селектор $('#primer').find('input').val(); то он находит и выводит число которое стоит в value инпута