2016-04-05 6 views
0

Ich arbeite an einer Laravel App, die zufälligerweise die EditorTable (Cousin der DataTable von http://editor.datatables.net/) verwendet. Ich kann die Tabelle mit Get und Post gut arbeiten, aber ich habe meine SQL DB-Setup in w, wo ich den Editor dynamisch machen muss. Grundsätzlich habe ich eine Tabelle, die einen Kurscode und ein Semesterjahr sowie eine metrische Antwort hat, die die Endbenutzer am Ende eines jeden Jahres einstecken.EditorTable Pivot View in Laravel 4.2

Wie kann ich die Codierung dynamisch machen? Manchmal kann ein Kurs 5 Metriken anzeigen, während ein anderer 15 in meiner Datenbank haben kann. (Statt meine SQL-Tabelle statisch zu machen habe ich es einen einfachen Sammler wegen der Klassen Anderssein ich ein für jede Schleife zu denken, aber ich könnte etwas Hilfe hier verwende unten Codierung:..

var table = $('#example').DataTable({ 
             // Makes one continuous line - jsg 2/12/2016 
      "scrollX": true, 

      "autoWidth": false, 
             // How many rows to return - jsg 2/16/2016 
       "pageLength": 25, 
             // Setup the search box with the current username to filter the values on the screen - jsg 2/12/2016 
       "search": {search: '<?php echo $auth_id;?>' + ' INQ 300 ' }, 
             // End Search Setup populate 
       dom: "Bfrtip", 
       ajax: "../app/controllers/INQControllers.php" 
       columns: [ 
        { 
         data: null, 
         defaultContent: '', 
         className: 'select-checkbox', 
         orderable: false 
        }, 
        { data: "fkey_instructor1_rcid", visible: false }, 
        { data: "first_name" }, 
        { data: "last_name" }, 
        { data: "fkey_course_id" }, 
        { data: "course_code" }, 
        { data: "course_number" }, 
        { data: "course_section" }, 
       { data: "fkey_semester_id"}, 
       { data: "category"}, 
       { data: "Metric_text"}, 
       { data: "response_value"} 

       ], 

       order: [ 1, 'asc' ], 
       keys: { 
        columns: ':not(:first-child)', 
        keys: [ 9 ] 
       }, 
       select: { 
        style: 'os', 
        selector: 'td:first-child' 
       }, 
       buttons: [ 

        { extend: "edit", editor: editor }, 
       { 
        extend: 'collection', 
        text: 'Export', 
        buttons: [ 
         'copy', 
         'excel', 
         'csv', 
         'pdf', 
         'print' 
        ] 
       } 
        //{ extend: "remove", editor: editor } 
       ] 
      }); 
       // Activate an inline edit on click of a table cell 
      $('#example').on('click', 'tbody td:not(:first-child)', function (e) { 
       editor.inline(this); 
      }); 

      // Inline editing on tab focus 
      table.on('key-focus', function (e, datatable, cell) { 
       editor.inline(cell.index(), { 
        onBlur: 'submit' 
       }); 
          }); 



      }); 

Dies ist, wo ich d‘es dynamisch zu machen, wenn möglich:

columns: [ 
         { 
          data: null, 
          defaultContent: '', 
          className: 'select-checkbox', 
          orderable: false 
         }, 
         { data: "fkey_instructor1_rcid", visible: false }, 
         { data: "first_name" }, 
         { data: "last_name" }, 
         { data: "fkey_course_id" }, 
         { data: "course_code" }, 
         { data: "course_number" }, 
         { data: "course_section" }, 
        { data: "fkey_semester_id"}, 
        { data: "category"}, 
        { data: "Metric_text"}, 
        { data: "response_value"} 

Tabellenüberschriften:

<table id="example" class="display" cellspacing="0" width="100%"> 
           <thead> 
            <tr> 
             <th></th> 
          <th>Instructor</th> 
            <th>First Name</th> 
             <th>Last Name</th> 
              <th>Course ID</th> 
           <th>Code</th> 
           <th>Number</th> 
           <th>Section</th> 
           <th>Sesmenter</th> 
           <th>Category</th> 
           <th>Metric Text</th> 
           <th width="3%">Metric Value</th> 
            </tr> 
         </table> 
           </thead> 

Mein Ajax-Aufruf:

Editor::inst($db, 'gen_ed_assessment.responses_data_record') 
    ->fields(
     Field::inst('fkey_instructor1_rcid')->validator('Validate::notEmpty'), 
     Field::inst('category')->validator('Validate::notEmpty'), 
     Field::inst('Metric_text'), 

     Field::inst('response_value') 
       ->validator('Validate::values', array('valid' => array("0.0","0.5","1.0","1.5", "2.0", "2.5","3.0", "3.5", "4.0"))), 

     Field::inst('fkey_course_id'), 
     Field::inst('id'), 
     Field::inst('first_name'), 
     Field::inst('last_name'), 
     Field::inst('fkey_semester_id'), 
     Field::inst('course_code'), 
     Field::inst('course_number'), 
     Field::inst('course_section') 

Schließlich ist dies keine Hausaufgabe, ich arbeite für ein College als Datenbankadministrator und ich berühre Frontend-Code hiermit mit PHP und Laravel.

Antwort

0

Ok, also habe ich herausgefunden, wie ich es dynamisch machen kann, es ist nicht so viel von EditorTable, da es nur die Daten pivot macht. In Laravel 4.2 konnte ich einen Drehpunkt in der Klinge erzeugen und ihn dann editierbar machen.

{{ HTML::row() }} 
    {{ HTML::col(12, 12, 12, 12) }} 
    <h3>{{ $section->Description}}</h3> 
    <h4>{{ $section->fkey_CourseCodeId }}- {{ $section->Number }}- {{ $section->ClassSection }}</h4> 
    <th>Number</th> 
    <th>Section</th> 
    <th>Semester</th> 
    {{ HTML::table(array('class' => 'table table-striped table-bordered table-hover table-condensed datatable')) }} 
     <thead> 
     <tr> 
      <th>First Name</th> 
      <th>Last Name</th> 
      @foreach($rubrics as $rubric) 
      @foreach($rubric->metric_category->metrics as $metric) 
       <th>{{ $metric->metric_text }}</th> 
      @endforeach 
      @endforeach 
     </tr> 
     </thead> 
     <tbody> 
     @foreach($registrations as $registration) 
      <tr> 
      <td></td> 
      <td>{{$registration->RCID}}</td> 
      </tr> 
     @endforeach 
     </tbody> 
    {{ HTML::closeTable() }} 
    {{ HTML::closeCol() }} 
{{ HTML::closeRow() }}