【问题标题】:not getting response in success function of ajaxajax的成功功能没有得到响应
【发布时间】:2016-11-09 09:36:15
【问题描述】:

您好,我想根据 business1 的下拉列表显示 business2 的数据,但是在 business1 的 change() 上,我得到了响应的数据,但是如何使用 id 在第二个下拉列表中打印它。我没有在成功功能中得到响应。如何使用 ID 打印下拉列表的选项。 我在 mozila 的 firefox 控制台中得到了响应,但我不知道如何成功返回它,然后如何在第二个下拉列表中打印。

<!-- ajax code starts here -->

            <script>
                    $(document).on('change', 'select.Business1', function(){
                           var business1 = $('select.Business1 option:selected').val();
                           alert(business1);
                           var value = $(this).val();

                           $.ajax({
                                type:"POST",
                                data: { business1:business1 },
                                url: '<?php echo site_url('client_area/select_business_sub_cat'); ?>',
                                sucess : function (data){
                                        alert(1);
                                        var abc = $('#business2').html(data);
                                }
                           });
                    });
            </script>


<!-- ajax code ends here -->

模型函数

public function select_business_sub_cat()
    {
        $business1 = $this->input->post('business1');
        $result_sub_cat1 = $this->db->query("select category.id,subcategory.* From category LEFT JOIN subcategory ON category.id = subcategory.category_id where category.id = '$business1'");
        $row_cat1 = $result_sub_cat1->result();

        $data = array(
            'id' => $row_cat1['0']->id,
            'name' => $row_cat1['0']->name
            );
        echo "<option value='" . $row_cat1['0']->id . "'>" . $row_cat1['0']->name . "</option>"; 
        // return $this->output->set_output($data);  
    }

查看 --

<div class="form-group">
                                <label>Business 1</label>
                                <select name="txtBusiness1" id="" style="height: 30px;width: 100%;" class="Business1">
                                                 <option value=""> Select Business </option>
                                                 <?php 
                                                 $result_cat1 =  $this->db->query("select * from category");
                                                 $row_cat1 = $result_cat1->result();
                                                 ?>
                                                <?php foreach($row_cat1 as $item){ ?>
                                                <option value="<?php echo $item->id; ?>"><?php echo $item->name; ?></option>
                                                <?php } ?>
                                </select>                        
                         </div>
                         <div class="form-group">
                                <label>Business 2</label>
                                <select name="txtBusiness2" id="business2" style="height: 30px;width: 100%;" class="Business2">
                                                 <option value=""> Select Business2 </option>

                                </select>                        

【问题讨论】:

    标签: php jquery ajax codeigniter


    【解决方案1】:

    您的 ajax 调用中有一个类型:

    success : function (data) {
    

    这是success 不是sucess

    【讨论】:

    • 哦,非常感谢兄弟的快速响应。现在我得到了警报(1);但我想在 id 为 business2 的 business2 标签中打印选项。我在 mozila 中得到了类似 的响应,但出现错误但错误是 ReferenceError: data is not defined.
    【解决方案2】:

    2 件事可能会造成问题:

    1) 在url中添加双引号

    2) 让它成功而不是成功

    $.ajax({
         type:"POST",
         data: { business1:business1 },
         url: '<?php echo site_url("client_area/select_business_sub_cat"); ?>', // add double quotes in url
         success : function (data){ // make it success instead of sucess
                  alert(1);
                  var abc = $('#business2').html(data);
                  }
    });
    

    【讨论】:

    • 哦,谢谢兄弟...我现在收到了 alert(1),我在 mozila 中得到了响应,例如 现在我想在其中回显它ID 为 business2 的下拉列表。但错误是 ReferenceError: data is not defined.
    • 尝试提醒数据而不是 1...那会发生什么?
    • 兄弟,我在警报中得到了空白。
    • 这是我的错,我的回复中缺少“
    【解决方案3】:

    变成功为成功。您正在使用 CI 框架,然后使用 CI 参数化查询,不要使用静态查询,它是可破解的。 为 div 和 select 提供唯一 id

    如果您使用 CI,最好遵循 MVC。使用 ci 参数化查询将您的查询放入模型中。

             <div class="form-group" id = 'divtxtBusiness1'>
                                <label>Business 1</label>
                                <select name="txtBusiness1" id="txtBusiness1" style="height: 30px;width: 100%;" class="Business1">
                                    ........         
                                </select>                        
                         </div>
    
                         <div class="form-group" id = "div_Business_2">
                                <label>Business 2</label>
                                <select name="txtBusiness2" id="business2" style="height: 30px;width: 100%;" class="Business2">
                                                 <option value=""> Select Business2 </option>
    
                                </select> 
                        </div>
    
            <script>
                    //$(document).on('change', 'select.Business1', function(){
                     //      var business1 = $('select.Business1 option:selected').val();
                    $(document).on('change', '#txtBusiness1', function(){
                           var business1 = $('#txtBusiness1').val();
                           //alert(business1);
                           //var value = $(this).val();
    
                           $.ajax({
                                type:"POST",
                                data: { business1:business1 },
                                url: '<?php echo site_url("client_area/select_business_sub_cat"); ?>',
                                success : function (data){
                                        //alert(1);
                                        $('#div_Business_2 #business2').remove();
                                        $('#div_Business_2').append(data);
                                }
                           });
                    });
            </script>
    

    控制器:

    public function select_business_sub_cat()
    {
        $business1 = $this->input->post('business1');
        $result_sub_cat1 = $this->xyzmodel->xyzmodelfunction($business1)
        $str = '<select name="txtBusiness2" id="business2" style="height: 30px;width: 100%;" class="Business2">';
        for($i = 0 ; $i< count($result_sub_cat1) ; $i++)
        {
               $str .= '<option value="'.$result_sub_cat1['id'].'"> '.$result_sub_cat1['name'].' </option>';
        }
    
         $str .= '</select>';
         echo $str;                        
        // return $this->output->set_output($data);  
    }
    

    型号: 不要使用静态查询,它是可破解的。

    class Xyzmodel extends CI_Model
    {
    
        ...... 
        public function xyzmodelfunction($business1)
        {
            $this->db->select(category.id,subcategory.*);
            $this->db->from('category');
            $this->db->join("subcategory", "category.id = subcategory.category_id", 'LEFT');
            $this->db->where('category.id', $business1);
            $result = $this->db->get();
            return $result->result_array();
        }
        ........
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-22
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2015-11-30
      • 2015-05-07
      相关资源
      最近更新 更多