Ich habe beide versucht, Tablesorter und Databases, um Sortierfunktionen zu erhalten. Mit beiden kann ich die Sortierpfeile sehen (und Filterbox, Seiten ... mit Datentabellen; obwohl sie auch nicht funktionieren), und sie ändern sich, aber die Daten sind nicht sortiert. HierWeder Tablesorter noch DataTables arbeiten mit AJAX
ist die Ajax (mit Tables ist es das gleiche, aber mit 'Datatable' anstelle von 'tablesorter'
$.ajax({
type: "GET",
url: "search.php",
data: {data : encrypted.data, salt: enc_salt},
success: function(enc_response){
var response = decrypt_cryptojs(enc_response, encrypted.salt);
var data = JSON.parse(response);
$("#search_result").html(data);
// Initialise tablesorter
$('#search_table').tablesorter();
}
});
ich die Tabelle mit PHP erstellen.
if (mysqli_num_rows($result) > 0) {
$message .= "<table id='search_table' class='tablesorter'>
<thead><tr>
<th id='search_user'>Usuario</th>
<th id='search_name'>Nombre</th>
<th id='search_surnames'>Apelidos</th>
<th id='search_email'>Correo</th>
<th id='search_role'>Rol</th>
<th id='search_access'>Acceso</th>
<th id='search_center'>Centro</th>
<th id='search_edit'></th>
<th id='search_delete'></th>
</tr></thead>";
while ($row = mysqli_fetch_row($result)) {
// Define $id
$id = $row[7];
// Replace space(" ") whith " " to avoid errors inside functions
$user = str_replace(" ", " ", $row[0]);
$name = str_replace(" ", " ", $row[1]);
$surnames = str_replace(" ", " ", $row[2]);
$center = str_replace(" ", " ", $row[6]);
$message .= "<tbody><tr>
<td>" . $row[0] . "</td>" .
"<td>" . $row[1] . "</td>" .
"<td>" . $row[2] . "</td>" .
"<td>" . $row[3] . "</td>" .
"<td>" . $row[4] . "</td>" .
"<td>" . $row[5] . "</td>" .
"<td>" . $row[6] . "</td>" .
"<td>" .
"<input type='image' src='../resources/edit.png' id='edit_" . $row[0] . "' class='edit' onclick=edit_user(\"$user\",\"$name\",\"$surnames\",'$row[3]','$row[4]','$row[5]',\"$center\",'$id') title='Editar'></button>" .
"</td>" .
"<td>" .
"<input type='image' src='../resources/delete.png' id='delete_" . $row[0] . "' class='delete' onclick=delete_user('$user','$row[4]') title='Eliminar'></button>" .
"</td>
</tr>";
}
$message .= "</tbody></table>";
$message .= "<div id='modify_panel'></div>";
}
Und danach:
// Encode the message using json
$response = json_encode($message);
// Encrypt the response and send it.
$enc_response = encrypt_cryptojs($response, $salt);
echo $enc_response;
mit Datentabellen I Meldung kann sagen, dass ich eine ungültige json Antwort haben.
"#search_result" befindet sich in einer PHP-Datei, die in einer anderen PHP-Datei enthalten ist.
Was mache ich falsch?
Vielen Dank.
EDIT: Ich habe den dummen Fehler gefunden, ich habe mehrere tbodys generiert. Wenn ich das Tag außerhalb der while verschieben, funktioniert es. Es tut uns leid.
Was ist Ihre search.php Antwort? – Chay22
Die Antwort ist der HTML-Code für die Tabelle nach dem Codieren und Verschlüsseln. Dann wird es in der Ajax-Erfolgsfunktion entschlüsselt und entschlüsselt, und was es in den HTML-Code eingefügt hat, ist nur der Tabellencode. – vjsp90