jquery datatables:

haunt

Lieutenant
Registriert
Juni 2010
Beiträge
584
Hallo zusammen,

ich habe mal eine Verständnisfrage:
ich habe via PHP eine HTML Tabelle erstellt ( Wordpress )
Jetzt würde ich diese Tabelle gerne Filterbar machen, dazu wollte ich eigentlich datatables nutzen, bekomme aber den Fehler, dass bei meiner Tabelle steht: No data available in table


JS:
jQuery(document).ready(function( $ ) {
$('#Fahrzeugliste').DataTable();
}

PHP:
<?php
... hier steht code

#hier wird eine Tabelle dynamisch erzeugt

echo " <div class='links'>";
echo "<table id='Fahrzeugliste' class='display' font-size='6px' >";
echo "<tbody>";

... hier wird die Tabelle gefüllt

echo "</table>";


?>

Ich habe jetzt gelesen, dass ich Datatable am Ende nutzen soll. Aber so ganz ist mir nicht klar wie ich nun vorgehen müsste...

Kann mir da jemand einen Denkanstoß geben?

Besten Dank und viele Grüße
 
Hi,

woher bekommt die Datatable denn die Daten? Du musst ja irgendwo angeben, wo die Daten herkommen sollen.
Einfach im HTML das funktioniert vermutlich nicht, jedenfalls laut Doku (Array, Object oder Instance).

VG,
Mad
 
  • Gefällt mir
Reaktionen: Steueroase
Hi,

stimmt, kenne und nutze ich selber so nicht, daher meine Vermutung. Aber das sollte funktionieren.

Teste es doch bitte mal exakt mit dem von dir geposteten Beispiel. Wenn das klappt kann man zumindest mal irgendwelchen Querschläger oder Fehlkonfiguration ausschließen.

Ohne das JavaScript wird die Tabelle in purem HTML problemlos angezeigt? Kannst du den kompletten HTML Code für die Tabelle mit einer Beispielzeile posten?

VG,
Mad
 
  • Gefällt mir
Reaktionen: Steueroase
Update:
funktioniert mit der HTML tabelle.


Werde ich versuchen, hier ersmtal die Tabelle:


echo "<table id='Fahrzeugliste' class='display' font-size='6px' >";
echo "<tbody>";
echo "<thead><tr><td><b>VIN</td><td>MANUFACTURER</td><td>TYPE</td><td>DEVICEID</b></td></tr></thead>";

foreach ($result as $element) {
foreach($element as $key => $value){

$Vergleich = $result['vehicleList'][$i]["modifyTimestamp"];

if ($Vergleich< $minus30day_time ) {

echo '<tr><td>' . $result['vehicleList'][$i]["id"] .'</td>';
echo '<td>' . $result['vehicleList'][$i]["make"] . '</td>';
echo '<td>' . $result['vehicleList'][$i]["model"] . '</td>';
echo '<td>' . $result['vehicleList'][$i]["deviceId"] . '</td>';
echo '</tr>';

}

$i++;
}
}
echo "</tbody>";
echo"<tfoot>";
echo"<tr>";
echo"<th>VIN</th>";
echo"<th>MANUFACTURER</th>";
echo"<th>TYPE</th>";
echo"<th>DEVICEID</th>";
echo"</tr>";
echo"</tfoot>";
echo "</table>";
echo "</div>";

Funktioniert soweit 1A.
 
Also ich habe eine normale HTML Tabelle da klappt es.
Ich habe eine HTML Tabelle welche ich mit PHP erstelle, da klappt es leider nicht...

Das sieht ja dann so aus, als ob die Tabelle noch nicht da ist wenn das JQuery greift....
 
Du musst wahrscheinlich das Script bzw. Query erst nachdem die Tab von PHP erstellt wurde laden. Sprich, das JS erst danach einbinden.
 
Mach einfach am Ende sowas in der Art:

echo "<script>
Dein Script
$('')....

</script>";
 
Hi,

ist deine Tabelle semantisch korrekt? Im thead Bereich mal th und nicht td verwendet? Die Tabelle ist sicher da wenn das Javascript greift, sonst wäre das Javascript auch noch nicht da.

VG,
Mad
 
In deinem Code in #5 ist <thead> innerhalb <tbody>. Das ist nicht richtig so. Wie Madman angemerkt hat auch mal <th> anstatt <td> benutzen.
 
Hallo zusammen,
also das war es tatsächlich. Einfach thead richtig positioniert und zack schon geht es
Vielen Dank für .die tollen Tipps!

Langsam hab ich echt das Gefühl ich weiß was ich tue ;)
 
Zurück
Oben