2017-03-22 5 views
0

Ich würde diese Funktion mag:codeigniter Update-Datenbank mit Ajax dann zeigen

Nachdem ich eine Option Ich möchte wählen Sie die Datenbank aktualisieren, sofort und dann zeigen sofort auch in einem bestimmten div. Wie kann ich das erreichen?

Hier ist mein HTML:

<select id="category1" name="cat1"> 
    <option>Hardware</option> 
    <option>Software</option> 
    <option>Network</option> 
</select> 

AJAX-Code:

$('#category1').on('change',function(){ 
    var data = $("cat1").val(); 
    var ticket = '<?php echo $ticket_details[0]["cTicketNo"];?>'; 
    if(data){ 
     jQuery.ajax({ 
      type: "POST", 
      dataType: 'json', 
      url: "<?php echo base_url();?>User/TicketView/update_cate", 
      data: {data: data,ticket: ticket}, 
      success:function(response){ 
       alert('successful'); 
      }, 
      error: function(response){ 
       alert('tangina!'); 
      } 
     }); 
    } 

}); 

Controller:

function update_cate(){ 
    $this->TicketView_m->update_cat1(); 
    redirect($_SERVER['HTTP_REFERER']); 
} 

Modell:

function update_cat1(){ 
    $ticket_id = $_POST['ticket']; 
    var_dump($cat = $_POST['data']); 

    $this->db->set('vCategory',$cat); 
    $this->db->where('cTicketNo',$ticket_id); 
    $this->db->update('tconcerns'); 
} 

Vielen Dank für die Hilfe!

+0

auf ' success 'fügen Sie den folgenden Code hinzu:' $ ('the-selector-of-the-div') .html (data); ' –

+0

ernsthaft, warum leiten Sie in eine Ajax-Anfrage um? – Beginner

+0

was soll ich dann machen? – TheTruth

Antwort

0

Drop das redirect($_SERVER['HTTP_REFERER']);, Sie brauchen das nicht.

Als Erstes können Sie mit AJAX Daten an den Server senden, ohne auf eine andere Seite umzuleiten.

Basierend auf Ihrem AJAX dataType. Es ist JSON. Damit Sie das Ergebnis erhalten, müssen Sie es in JSON wie json_encode(['result' => 'things you want to show']) kodieren.

Dann können Sie es in Ihrer Antwort wie folgt zugreifen:

success:function(response){ 
    alert('successful'); 
    var res = response.result; //Access the JSON 
    $("#certainDiv").html(res); //Print to the div you want 
} 

Und es ist auch besser, die Post-Anforderung in Ihrem Controller erhält dann zu Ihrem Modell übergibt es:

function update_cate(){ 
    $ticket_id = $this->input->post('ticket'); 
    $cat1  = $this->input->post('cat1'); 
    $this->TicketView_m->update_cat1($ticket_id, $cat1); 

    echo json_encode(['result' => 'things you want to show']); 
}