没有得到ajax成功功能的回应

时间:2016-07-07 06:53:48

标签: php jquery ajax codeigniter

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

% curl -v t.co/oPQO7Xdz
* About to connect() to t.co port 80 (#0)
*   Trying 104.244.42.69...
* connected
* Connected to t.co (104.244.42.69) port 80 (#0)
> GET /oPQO7Xdz HTTP/1.1
> User-Agent: curl/7.26.0
> Host: t.co
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< cache-control: private,max-age=300
< content-length: 0
< date: Thu, 07 Jul 2016 05:24:40 GMT
< expires: Thu, 07 Jul 2016 05:29:40 GMT
< location: http://mdoc.su/n/curl
< server: tsa_o
< set-cookie: muc=2c727b50-311f-4043-9861-9f703996a8a8; Expires=Tue, 19 Jun 2018 05:24:40 UTC; Domain=t.co
< x-connection-hash: 5583cc49ddbcefe8fac9ba392ca868fd
< x-response-time: 103
<
* Connection #0 to host t.co left intact
* Closing connection #0

模型功能

<!-- 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);  
    }

3 个答案:

答案 0 :(得分:3)

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

success : function (data) {

success而非sucess

答案 1 :(得分:1)

有两件事可能会产生问题:

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);
              }
});

答案 2 :(得分:1)

将成功转变为成功。您正在使用CI框架然后使用CI参数化查询,不要使用静态查询它是hackable。 为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();
    }
    ........
}