2016-11-09 1 views
3

wie rufe ich mehrere Zeilen aus Datenbanktabelle und greifen Sie in View-Datei durch den Controller :)Codeigniter- Ajax Codeigniter Ajax mehr als eine Zeile durch Ajax -Retrurning

ich AJAX bin mit den Daten MY VIEW abrufen FILE:

<script> 
$(document).ready(function(){ 
$(".listproduct".click(function(){ 
    var value = $(this).text(); 
$.ajax({ 
     type:'POST', 
     url:'<?=site_url("purchasecont/getproductlist"; ?>', 
     data: {'data' : value} , 
     success:function(result){ 
     console.log(result); 
     for(i=0;i<result['count'];i++){ 
      var table = $('#products'); 
    var tr = (
    '<tr>' + 
    '<td>'+ result[i]['invoiceno']; +'</td>'+ 
    '<td>'+ result[i]['price']; +'</td>'+ 
    '</tr>' 
    ); 
    $('#products').append(tr); 

     } 
    } 

    }); 
$(".collapse".collapse('toggle'); 

}); 
}); 
</script> 

MY CONTROLLER FILE: i mehr als eine Zeile aus dem

public function getproductlist(){ 
//check if is an ajax request 
if($this->input->is_ajax_request()){ 
    //checks if the variable data exists on the posted data 
    if($this->input->post('data')){ 


    $query = $this->purchasemodel->getproductlist($this->input>post('data')); 
     $data['records'] = $query['records']; 
     $data['count'] = $query['count']; 
      $this->output->set_content_type('application/json'); 
     $this->output->set_output(json_encode($data)); 
     return $data; 
       } 
    } 
    } 

MY MODEL FILE

Tabelle Abrufen wird: i wird Retrie ving mehr als eine Zeile aus der Tabelle

public function getproductlist($q){ 
    $this->db->select('*');  
    $this->db->from('purchaseprolist'); 
    $this->db->where('purchaseprolist.invoice' , $q); 
    $this->db->where('purchaseprolist.price != ',0,FALSE); 
    $query = $this->db->get(); 
    $row = $query->result(); 
    return array(
'records' => $row, 
'count' => count($row), 
); 

} 

Meine Tabelle der Daten anzuzeigen: ich ahnungslos bin, wie es mir helfen, hier angezeigt durch bitte

<table id="products">         
    <tbody> 
     <tr> 
      <td>Invoice</td> 
      <td>price</td> 
      <td id="quantity"></td> 
     </tr> 
    </tbody> 
</table> 

Antwort

0

Wenn das Ergebnis Sie aus der Datenbank abrufen Wenn Sie mehr als ein Element haben, müssen Sie in Ihrer Ansicht eine Schleife verwenden, um das HTML mit Elementen zu füllen (z. B. Datentabelle). Der Code sollte in etwa so aussieht:

$(document).ready(function(){ 
$(".listproduct".click(function(){ 
    var value = $(this).text(); 
    $.ajax({ 
     type:'POST', 
     url:'<?=site_url("purchasecont/getproductlist"; ?>', 
     data: {'data' : value} , 
     success:function(result){ 
      for(i=0;i<result.length;i++){//loop trough elements 
       $('#myTable tr:last').after('<tr><td>' + $('#invoiceno').html(result[i]['invoiceno']); + '</td><td>' + $('#productname').text(result[i]['productname']); + '</td><td>' + $('#price').text(result[i]['price']); + '</td></tr>'); 
      } 
     } 
    }); 
$(".collapse".collapse('toggle'); 

}); 
}); 
+0

danke ich werde versuchen und überprüfen :) – Ramya

+0

Seien Sie vorsichtig über die Ergebnisse zu von Modell aus Ihrer Sicht, wenn Sie zum Beispiel JSON von der Ajax-Request zurückkehren, müssen Sie zunächst das Ergebnis vor der Verwendung in loop und html deserialisieren. – raBne

+0

Es tut mir leid, aber wie zeige ich dies in einer Tabelle von Zeilen :) Ich weiß nicht, wie man auf das Ajax-Ergebnis zugreifen und es verwenden :) – Ramya