jQuery onClick将数据发布到第二列

时间:2014-10-29 07:15:31

标签: php jquery codeigniter http-post

无法弄清楚这里$ .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>

请帮帮我!问题出在哪儿? 谢谢!

4 个答案:

答案 0 :(得分:0)

问题出在这一行:

$.post(link + "admin/admin_cat/cat_level_3", {cat_level_1:cat_level_1}, function(data) {

这里的问题是你在两个地方使用var "cat_level_1"值,当你试图在php中读取para时你就不会得到它。

我认为你应该引用密钥cat_level_1。所以代码必须是:

$.post(link + "admin/admin_cat/cat_level_3", {"cat_level_1":cat_level_1}, function(data) {

尝试这个,如果它适合你。

答案 1 :(得分:0)

问题在于这一行 var link ="<?php echo base_url();?>" ;如果您设置了虚拟主机,则无法通过javascript执行此操作window.location.origin + "/admin/admin_cat/cat_level_2"

答案 2 :(得分:0)

好的,这可能是错误的。

  

cat_level_2:cat_level_1

成功

  

cat_level_2:cat_level_2

在第二个js。

答案 3 :(得分:0)

你不能在js文件中写php代码。所以这行不行。

 var link ="<?php echo base_url();?>" ;

尝试在包含javascript文件之前在主视图文件(标题)中添加此行

 <script type="text/javascript">
       var link ="<?php echo base_url();?>" ;
    </script>