2017-11-22 1 views
0

어떻게 아약스를 사용하여 여러 선택 값을 데이터베이스에 삽입 할 수 있습니까? 나는 컨트롤러에 전달할 값을 잡을 수 없다. 나는 codeigniter를 사용하고있다. 내가 시도하는 방법 foreach는() * 여기jquery로 여러 선택 값 가져 오기

위해 공급 잘못된 인수입니다 :

$(function() { 
    $('#formLabo').on('submit', function(event) { 
     var selected = []; 
     $('#laborat :selected').each(function() { 
      selected[$(this).val()] = $(this).text(); 
     }); 

     $.ajax({ 
      type: "POST", 
      url: "<?=base_url('admin/SaveFormIndicacionesLab')?>", 
      data: { 
       laboratorios: selected 
      }, 

      cache: true, 
      success: function(data) {} 

     }); 
    }); 
}); 

컨트롤러

<select class="form-control chosen-select" multiple name="laborat" id="laborat" required> 
    <option value="" hidden></option> 
    <?php 

     foreach($laboratories as $row) 
     { 
     echo '<option value="'.$row->name.'">'.$row->name.'</option>'; 
     } 

    ?> 
</select> 

JS를 *이 메시지가 : 내 컨트롤러에서이 오류가 발생했습니다

public function SaveFormIndicacionesLab() { $laboratorios = $this->input->post('laboratorios'); foreach($laboratorios as $lab) { $save = array( 'laboratory' => $lab ); $this->model_admin->SaveFormIndicacionesLab($save); } } 

답변

0

dex laboratory 컨트롤러에 있지만보기에서 당신은 laboratories을 사용합니다.

또한 foreach ($laboratorios as $lab)을 사용하면 $ lab은 $ laboratorios의 개별 항목입니다. $ lab이 필요 없다면 foreach()가 필요하지 않습니다.

내가 볼 수없는 추가 문제가있을 수 있습니다. $ .ajax에 전달 된 데이터 구조 아래의 charlietfl이 유효하지 않을 수 있습니다.

+0

$ .ajax에 전달 된 데이터 구조도 유효하지 않으므로 표시된 오류가 발생합니다. – charlietfl

+0

죄송합니다. 코드를 stackoverflow에 복사 할 때 실수했습니다. 그것은 stil은 같은 오류를 보여줍니다. 'laboratory'=> $ lab : 실험실은 테이블의 필드입니다. – Diasline

+0

@Diasline 귀하의 편집 내용은 여전히 ​​컨트롤러의 실험실과보기의 실험실 사이의 혼합을 수정하지 않았습니다. 그것을 수정 한 후에, 당신은 또한'var_dump()'변수를 사용하여 실패하기 전에 상태를 확인하고 코드를 문제의 출처로 옮겨야합니다. – Goose

관련 문제