2017-11-13 6 views
0

Ich möchte JSON-Array in Tabelle, meine DB-Tabellenstruktur bestehen: act_id, sales_id, cust_name, act_type, Notizen, date_add, date_modified, Aktion.JSON kodieren zu Tabelle

hier sind die Skripte (/api.php):

public function get_todo($id = null) 
{ 
    $this->_require_login(); 

    if ($id != null){ 
     $this->db->where([ 
      'act_id' => $id, 
      'user_id' => $this->session->userdata('user_id') 
     ]); 
    } else { 
     $this->db->where('user_id', $this->session->userdata('user_id')); 
    } 
    $this->db->where('user_id', $this->session->userdata('user_id')); 
    $query = $this->db->get('activity'); 
    $result = $query->result_array(); 

    $this->output->set_output(json_encode($result)); 
} 

mein event.js

var load_todo = function() { 
    $.get('api/get_todo', function(o){ 

     var output = ''; 
     for (var i = 0; i < o.length; i++){ 
      output += Template.todo(o[i]); 
     } 

     $("#list_todo").html(output); 
    }, 'json'); 
}; 

dies mein template.js ist

output +='<table style="width:80%;">'; 
    output +='<thead>'; 
    output += '<tr>'; 
    output +='<th>' + "Client Name" + '</th>'; 
    output +='<th>' + "Activity" + '</th>'; 
    output +='<th>' + "Notes" + '</th>'; 
    output +='<th>' + "Start" + '</th>'; 
    output +='<th>' + "Finish" + '</th>'; 
    output +='<th>' + "Action" + '</th>'; 
    output +='</tr>'; 
    output += '</thead>'; 

    output +='<tbody>'; 
    output += '<tr>' 
    output +='<td>' + obj.cust_name + '</td>'; 
    output +='<td>' + obj.act_type + '</td>'; 
    output +='<td>' + obj.act_notes + '</td>'; 
    output +='<td>' + obj.date_added +'</td>'; 
    output +='<td>' + obj.date_modified + '</td>'; 
output += '<td>' + '<a class="todo_update" data-id="' + obj.act_id + '"data-completed="' + data_completed + '" href="api/update_todo">' + data_completed_text + '</a>' + '</td>'; 
    output += '</tr>'; 
    output +='</tbody>'; output +='</table>'; 

jedoch schafft es doppelt Spaltenname in jeder Zeilenansicht enter image description here

jede Hilfe würde wirklich geschätzt. Danke.

+1

Verschieben Sie den Header-Tabellenbereich aus der Vorlage. Vielleicht ermöglichen es Ihre Vorlagen ineinander zu injizieren. –

+1

Sie werden wahrscheinlich die Kopfzeile jedes Mal wiederholen, wenn Sie eine Zeile hinzufügen – Llewellyn1411

+0

@u_mulder meinst du ich lege die Header-Tabelle in die Ansicht? Wenn ich es aus der Vorlage verschiebe, wie kann ich die Daten aus dem Ereignis abrufen? danke – Syns

Antwort

0

Halten Sie den Header-Teil der Tabelle außerhalb der Schleife. Mein Rat ist, das Programm in zwei Hälften zu teilen, den Header-Teil zu kodieren, seine Ausgabe zu sehen und dann den Rest der Daten zu kodieren und dann zu verbinden, wie Sie es wünschen.

+0

Großartig, danke. Habe das gemacht. – Syns

+0

Kann ich eine Verbesserung erhalten: P –

+0

Ich möchte, aber ich kann nicht, die Website wird mich nicht lassen (nicht genug Punkt oder etwas): D – Syns

Verwandte Themen