2017-09-11 5 views
1

quelqu'un peut-il pour aider comment créer champ de formulaire de saisie semi-automatique dans CodeIgniter 3 avec AJAX, je l'ai déjà la navigation mais personne ne succès en coursbesoin d'aide pour créer autofill dans CodeIgniter

contrôleur

:

function autofill(){ 
     $id_pemesan = $this->input->post('id_pemesan', TRUE); 
     $this->mod_marketing->autofill_by_id($id_pemesan,'pemesan'); 



      $data = array(
      'nama_depan' => nama_depan, 
      'nama_belakang' => nama_belakang, 
      'alamat' => alamat, 
      'provinsi_kota' => provinsi_kota, 
      'kode_pos' => kode_pos, 
      'email' => email, 
      'no_telp' => no_telp 
      ); 

     echo json_encode($data); 
    } 

modèle :

function autofill_by_id($id_pemesan,$table){ 

     return $this->db->get_where($table,array('id_pemesan', $id_pemesan)); 
    } 
scénario

:

<script> 
$(function() { 
     $("#id_pemesan").change(function(){ 
      var id_pemesan = $("#id_pemesan").val(); 

      $.ajax({ 
       url: '<?php echo site_url('marketing/autofill'); ?>', 
       type: 'POST', 
       dataType: 'json', 
       data: { 
        'id_pemesan': id_pemesan 
       }, 
       success: function (pemesan) { 
        $("#nama_depan").val(pemesan.nama_depan); 
        $("#nama_belakang").val(pemesan.nama_belakang); 
        $("#alamat").val(pemesan.alamat); 
        $("#provinsi_kota").val(pemesan.provinsi_kota); 
        $("#kode_pos").val(pemesan.kode_pos); 
        $("#email").val(pemesan.email); 
        $("#no_telp").val(pemesan.no_telp); 

       } 
      }); 
     }); 
    }); 

que mon dernier essai et son échec encore

+0

Quelle était l'erreur jusqu'à présent? quel problème? – smzapp

Répondre

0

changer le contrôleur afin qu'il vérifie si la réponse doit inclure des données ou des erreurs. Vous étiez en fait pas de passage de la ligne au tableau, donc je devine que c'est ce que vous vouliez:

function autofill() 
{ 
    $id_pemesan = $this->input->post('id_pemesan', TRUE); 
    $row = $this->mod_marketing->autofill_by_id($id_pemesan,'pemesan'); 

    if($row) 
    { 
     $data = array(
      'nama_depan' => $row->nama_depan, 
      'nama_belakang' => $row->nama_belakang, 
      'alamat'  => $row->alamat, 
      'provinsi_kota' => $row->provinsi_kota, 
      'kode_pos'  => $row->kode_pos, 
      'email'   => $row->email, 
      'no_telp'  => $row->no_telp 
     ); 

     echo json_encode($data); 
    } 

    // No rows, or there was more than one row 
    else 
    { 
     echo json_encode(array('error' => 'No rows, or there was more than one row')); 
    } 
} 

changer le modèle pour vérifier la ligne:

function autofill_by_id($id_pemesan, $table) 
{ 
    $query = $this->db->get_where($table,array('id_pemesan', $id_pemesan)); 

    return $query->num_rows() == 1 
     ? $query->row() 
     : NULL; 
} 

Modifier la JS afin que vous puissiez vérifier les erreurs:

$(function() { 
    $("#id_pemesan").change(function(){ 
     var id_pemesan = $("#id_pemesan").val(); 

     $.ajax({ 
      url: '<?php echo site_url('marketing/autofill'); ?>', 
      type: 'POST', 
      dataType: 'json', 
      data: { 
       'id_pemesan': id_pemesan 
      }, 
      success: function (pemesan) { 
       if(permesan.error){ 
        alert(permesan.error); 
       }else{ 
        $("#nama_depan").val(pemesan.nama_depan); 
        $("#nama_belakang").val(pemesan.nama_belakang); 
        $("#alamat").val(pemesan.alamat); 
        $("#provinsi_kota").val(pemesan.provinsi_kota); 
        $("#kode_pos").val(pemesan.kode_pos); 
        $("#email").val(pemesan.email); 
        $("#no_telp").val(pemesan.no_telp); 
       } 
      }, 
      error: function(){ 
       alert('error 2'); 
      } 
     }); 
    }); 
}); 
+0

J'ai essayé votre code, il est toujours vide et a été averti "pas de ligne, ou il y avait plus d'une ligne" ou c'est parce que la version de jquery-ui j'utilise? Jquery-ui 1.11.4 – goddelose

+0

eu quelque chose d'autre corrompant la réponse. Vous devez aller sur le panneau Net de la console de votre navigateur et regarder la réponse brute du serveur. –