2016-11-19 1 views
0

Ich bin sehr neu auf die Verwendung von AJAX. Ich benutze Codeigniter Meine Frage ist, wie kann ich den Wert meiner Abfrage und setzen Sie es auf die Eingabefelder. Ich habe einige erstellt, aber alles, was ich tun kann, ist sie zu warnen.Wie übergeben Wert meiner Abfrage zu Eingabefeldern mit AJAX

Modell

public function getguarantordata($id,$gid){ 
    $array = array('ClientID' => $id, 'GuarantorID' => $gid); 
     $query = $this->db->where($array)->get('tblguarantor');   
     return $query->result(); 
    } 

Ansicht

<h3>Guarantor Information</h3> 
    <div> 
    <input type="text" id="clientID" class="hide" value="<?php echo $this->session->loginid; ?>" > //temporary im using this to get the ID of the Client 
    </div> 
    <div class="form-group row "> 
    <label for="" class="col-md-1">Previous Guarantor</label> 
    <div class="col-md-3"> 
    <select class = "form-control" id = "selectedvalue"> 
     <option value="default">Default</option> 
    <?php foreach ($guarantordata as $row): ?>  
    <?php echo '<option value = "'. $row->GuarantorID.'">' .$row->GuarantorFirstName. '</option>' ?> //getting the ID of The Guarantor 
     <?php endforeach ?> 
     </select> 
    </div> 
    <div class="col-md-3 btn btn-success" id="selectedG">Choose as Guarantor </div> 
    </div> 

    <div class="form-group row"> 
    <label for="" class="col-md-1 col-form-label">First Name</label> 
    <div class="col-md-3"><input type="text" class="form-control" value =""></div> 

    <label for="" class="col-md-1 col-form-label">Middle Name</label> 
    <div class="col-md-3"><input type="text" class="form-control" value =""></div> 

-Controller

function Getgdata($id,$gid){ 
    $guarantordata = $this->Model_user->getguarantordata($id,$gid); 
    foreach ($guarantordata as $row){ 

    $data1 = array(

'GuarantorFirstName' => $row->GuarantorFirstName, 
'GuarantorMiddleName' => $row->GuarantorMiddleName, 



); 
} 

    echo var_dump($guarantordata); //i just want to view the result. 
} 

Javascript Das ist mein JavaScript-Code.

var home = "http://localhost/"; 
    $('#selectedG').on('click', function(e){ 
var test = $('#selectedvalue').val(); 
var cid = $('#clientID').val(); 

      e.preventDefault();   
       $.ajax({ 
        url: home + "Getgdata/" + cid+"/" + test,       
        method:"POST", 
        data:this, 
        contentType: false, 
        cache: false, 
        processData:false, 
        success:function(data) 
        { 

         alert(data); 
        } 
       }); 

     }); 

die Idee hier ist, ich die Daten meiner Abfrage erhalten mag, die ich in der Steuerung ausgeführt werden .. und dass die Daten zum Beispiel „GuarantorFirstName“ auf Vornamen Feld passieren werden in Ansicht gefunden.

+0

welcher Teil nicht funktioniert? –

+0

es funktioniert Ich möchte nur wissen, wie kann ich den Wert in Getgdata Funktion im Controller generiert zu meiner Ansicht .. der Wert von GarantorFirstName = "myname"; GarantorMiddleName = "mymiddlename"; Ich wan dieser Wert, um zu meiner Ansicht auf Eingabefeld mit AJAX –

+0

gehen, auch wenn Sie von Ajax erhalten Sie die Antwort.aber Sie können eine JSON-Ausgabe erhalten, so dass Sie leicht 2 Werte bekommen können. echo var_dump ist nicht gut json encode, um json-Ausgabe zurückzugeben und 'header ('Content-Type: application/json');'. –

Antwort

1

anstelle von var_dump Daten, geben Sie eine json Antwort vom Controller zurück, dann können Sie einfach auf Werte von js zugreifen.

function Getgdata($id,$gid){ 
    $guarantordata = $this->Model_user->getguarantordata($id,$gid); 
    foreach ($guarantordata as $row){ 

     $data1 = array(
       'GuarantorFirstName' => $row->GuarantorFirstName, 
       'GuarantorMiddleName' => $row->GuarantorMiddleName); 
     } 
     // return json response 
     header('Content-Type: application/json'); 
     echo json_encode($data1); 
} 

jetzt von Ajax-Antwort-können Sie sie leicht Zugang

$.ajax({ 

    url: home + "Getgdata/" + cid+"/" + test,       
    method:"POST", 
    dataType: 'json', //set data type to json 
    data:this, 
    contentType: false, 
    cache: false, 
    processData:false, 
    success:function(data) { 
     alert(data.GuarantorFirstName); 
     alert(data.GuarantorMiddleName); 
    } 
}); 
+1

Vielen Dank !! das funktioniert. –

Verwandte Themen