2017-04-13 2 views
0

Ich habe eine Tabelle und ich rufe die Zeilen mit PHP.wie ID mit jQuery DataTables Checkboxen

foreach ($rowData as $row) : $id = $row->_kpnID; ?> 
    <tr class="editable details-control collapsed" data-values="action" id="{{ $id }}"... 

Meine Ausgabe sieht wie folgt aussieht:

<thead><tr role="row" class="selected"> 
    <th>Checkbox</th> 
    <th>Ticket No</th> 
    <th>Name</th> 
    </thead> 
    <tbody> 
    <tr class="editable details-control collapsed odd selected" data-values="action" id="152808" rel="row-152808" data-key="152808" data-url="show/152808" role="row"> 
    <td><input type="checkbox" class="ids" name="ids[]" value="152808"></td>      
    <td id="bookingdata" data-values="152808" data-field="_kpnID" data-format="152808">W-152808</td> 
    <td id="bookingdata" data-values="SIMPSONS" data-field="tGuestName" data-format="SIMPSONS">SIMPSONS</td> 
    </tr> 
    <tr class="editable details-control even expanded" data-values="action" id="152868" rel="row-152868" data-key="152868" data-url="show/152868" role="row"> 
    <td><input type="checkbox" class="ids" name="ids[]" value="152868"> </td>     
    <td id="bookingdata" data-values="152868" data-field="_kpnID" data-format="152868">DPAW-152868</td> 
    <td id="bookingdata" data-values="Wade Harris" data-field="tGuestName" data-format="Wade Harris">Wade Harris</td></tr></tbody> 

ich hinüber zum jQuery DataTables Checkboxes plugin kam, die die ausgewählte Zeile ID auswählen und veröffentlichen können.

Ich nenne die Zeilen nicht als JSON-Format. Eines Tages möchte ich sie im JSON-Format aufrufen, aber im Moment benutze ich einfach den HTML-Code oben.

Ich bin mir nicht sicher, wie man die IDs mit dem Checkboxes-Plugin einreicht, da ich die IDs nicht über Ajax abrufe. Die ID oben wurde einfach mit $id in meiner PHP-Datei aufgerufen. Ich würde mich freuen, wenn Sie die this jsfiddle bearbeiten und mir zeigen könnten, wie die ID (s) einzureichen sind.

+0

ist am besten, um Ihre ID einzigartig zu halten, anstatt ID zu verwenden, versuchen Sie es zur Klasse? – Se0ng11

+0

Ich verwende für verschiedene ID für jede Zeile, da die Zeilen mit AJAX erweitert werden und zusätzliche Daten unterhalb der Zeile anzeigen, nachdem die Zeile ausgewählt ist. Um das zu erreichen, musste ich für jede Zeile eine andere ID verwenden. – hijacker83

Antwort

1

Es gab einen issue mit 1.2 Zweig, der Tabellen mit HTML- oder JavaScript-Daten betrifft, die in Version 1.2.4 aktualisiert wurden. Bitte laden Sie die neueste Version von jquery-datatables-checkboxes Seite.

Auch müssen Sie nicht <input type="checkbox"> Elemente generieren, wickeln Sie einfach Ihre ID in <td></td>.

Siehe Code this example für Code und Demonstration.

+0

Vielen Dank. Tolles Plugin! Ich versuche es jetzt. Es scheint, als hättest du viel Wissen über die Datatables. Darf ich Sie bitten, sich stackoverflow.com/questions/43393796/... diese Frage anzusehen? Ich versuche auch, die Schlüsselfunktion zu verwenden. Wenn ich das Checkbox-Plugin verwende, muss ich das select-Plugin nicht verwenden, oder? Könnten Sie mir bitte zeigen, wie Sie die Tastenfunktion in dem von Ihnen bereitgestellten Beispiel hinzufügen? Wenn ich 'keys: true' hinzufüge, funktioniert es nicht. – hijacker83

+0

@ Hijacker83, vielen Dank für die Meldung des Problems, gerade ein Update auf die neueste Version, die es zu beheben. Ich werde versuchen, auch deine andere Frage zu betrachten. –

+0

Das einzige, was ich versuchte, war es, die Tasten zu benutzen und Plugins gleichzeitig auszuwählen. In dem von Ihnen vorgeschlagenen Beispiel scheint das Checkbox-Plug-in als Auswahl-Plugin zu fungieren, wenn die Zeilen ausgewählt werden. Auch Mehrfachauswahl funktioniert durch Drücken der Strg-Taste. Also, ich denke, es ist nicht nötig das select plugin zu benutzen. Wenn ich Checkboxen Plug-in mit Schlüssel-Plugin verwenden kann, um die Zeilen auszuwählen, die fantastisch wären. Wenn ich den Pfeil nach unten drücke, muss die vorher ausgewählte Zeile und das Kontrollkästchen deaktiviert werden. https://jsfiddle.net/snqw56dw/526/ das habe ich bisher gemacht, aber ich konnte sie nicht zusammen arbeiten lassen. – hijacker83