Не могу понять, в чем проблема с $ .post здесь.
На самом деле я извлекаю данные из базы данных в столбце 1 и столбце 2. оба получают значения отлично, когда я пытаюсь индивидуально выполнить функцию контроллера. Теперь я пытаюсь jquery, что когда будет щелкнуть первое значение столбца, он показывает другие значения столбца. но это не передача на $ .post
Вот JQuery:
<script type='text/javascript'>
$('document').ready(function(){
var link ="<?php echo base_url();?>" ;
$( "#cat_level_1" ).on( "click", function() {
var cat_level_1 = $('#cat_level_1').val();
alert (cat_level_1); //getting elements id like (men alert for 49) alert on click
$.post(link + "admin/admin_cat/cat_level_2", {cat_level_1 : cat_level_1}, function(data) {
alert( "Data Loaded: " + data);
//here it showing me HTML of my controller in alert.
$('#cat_level_3').html('');
$('#cat_level_4').html('');
$('#cat_level_2').html(data);});
});
});
</script>
Для второго столбца:
<script type="text/javascript">
$('document').ready(function(){
var link ="<?php echo base_url();?>" ;
$('#cat_level_2').click(function(){
var cat_level_2 = $(this).val();
alert (cat_level_2); //it shows me alert with its db id.
$.post(link + "admin/admin_cat/cat_level_3", {cat_level_2:cat_level_1}, function(data) {
$('#cat_level_4').html('');
$('#cat_level_3').html(data);
});
});
});
<script>
Вот мой код php (view), из которого я получаю значения:
Для столбца 1:
<div class="category-col">
<select size="15" name="cat_level_1" id="cat_level_1">
<?php
if (isset($cat_level_1) && $cat_level_1 != ''){
foreach ($cat_level_1 as $cat_1) {?>
<option value="<?php echo $cat_1['cat_id']; ?>">
<?php echo $cat_1['cat_title']; ?>
</option>
<?php }
}
?>
</select>
</div>
Для столбца 2:
<div class="category-col">
<select size="15" name='cat_level_2' id='cat_level_2'>
<?php
if (isset($cat_level_2) && $cat_level_2 !=''){
foreach ($cat_level_2 as $cat_2) {?>
<option value="<?php echo $cat_2['cat_id']; ?>">
<?php echo $cat_2['cat_title']; ?>
</option>
<?php }
}
?>
</select>
</div>
Кто-нибудь, помогите мне, пожалуйста! В чем проблема?
Спасибо!
Проблемы в этой строке:
$.post(link + "admin/admin_cat/cat_level_3", {cat_level_1:cat_level_1}, function(data) {
Проблема в том, что вы используете var "cat_level_1"
значение в обоих местах и при попытке прочитать пункт в php вы не получите его.
Я думаю, что вы должны процитировать ключ cat_level_1. поэтому код должен быть:
$.post(link + "admin/admin_cat/cat_level_3", {"cat_level_1":cat_level_1}, function(data) {
попробуйте это, если это работает для вас.
Проблема в этой линии
var link ="<?php echo base_url();?>" ;
Вы не можете сделать это из JavaScript, если у вас настроены виртуальные хосты, вы можете сделать это window.location.origin + "/admin/admin_cat/cat_level_2"
Хорошо, здесь может быть ошибка.
cat_level_2: cat_level_1
Сделай это
cat_level_2: cat_level_2
во втором js.
Вы не можете написать php-код внутри js-файла. Так что эта строка не будет работать.
var link ="<?php echo base_url();?>" ;
попробуйте добавить эту строку в ваш основной файл представления (заголовок), прежде чем включать файлы JavaScript
<script type="text/javascript">
var link ="<?php echo base_url();?>" ;
</script>