【问题标题】:jQuery onClick post data to second columnjQuery onClick 将数据发布到第二列
【发布时间】:2014-10-29 07:15:31
【问题描述】:

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

请有人帮帮我!哪里有问题? 谢谢!

【问题讨论】:

  • 在您的第一列 jquery 中。可能是这里的问题{cat_level_1 : cat_level_1} 将此代码替换为:{'cat_level_1' : cat_level_1}。为参数添加引号。
  • 现在它不会向我显示带有 id 的弹出窗口!

标签: php jquery codeigniter http-post


【解决方案1】:

问题出在这一行:

$.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) {

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

【讨论】:

  • 不会影响任何事情。那里有相同的输出.. 显示带有 id 弹出窗口的警报,然后是弹出窗口中的 html
【解决方案2】:

问题是这一行 var link ="&lt;?php echo base_url();?&gt;" ;
如果您设置了虚拟主机,则无法从 javascript 执行此操作,您可以执行此操作 window.location.origin + "/admin/admin_cat/cat_level_2"

【讨论】:

  • 如果没有设置虚拟主机,那么还有其他的吗?
【解决方案3】:

好吧,这里可能是错误。

cat_level_2:cat_level_1

做起来

cat_level_2:cat_level_2

在第二个js中。

【讨论】:

    【解决方案4】:

    你不能在 js 文件中编写 php 代码。所以这一行将不起作用。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-08
      • 2012-12-06
      • 2018-11-22
      • 1970-01-01
      • 2012-07-14
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多