2016-07-07 123 views
0

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

<!-- 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>       

回答

1

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

1)在URL中添加双引号

2)把它的成功,而不是sucess

$.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); 
       } 
}); 
+0

ohk谢谢你兄弟...我现在得到了警惕(1),现在我得到了mozila的回复,比如现在我想在id business2的下拉列表中回显它。但错误是ReferenceError:数据未定义。 – Bhavin

+0

尝试提醒数据而不是1 ...接下来会发生什么? –

+0

兄弟我在警报中空白。 – Bhavin

3

你在你的Ajax调用有类型:

success : function (data) { 

success没有sucess

+0

哦,非常感谢你的兄弟的快速反应..现在我得到了警觉(1);但是我想打印business2标签中的选项。我得到了mozila的回复,如但有错误,但错误是ReferenceError:数据未定义。 – Bhavin

1

变化sucesss成功。您正在使用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(); 
    } 
    ........ 
} 
+0

谢谢你兄弟的完美解决方案:) – Bhavin