Seite mit einer Tabelle nach Datenbankabfrage aktualisieren
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 05.08.2013 - 08:53 Uhr in
Hallo,
folgender Aufbau:
es wird eine Datenbankabfrage gemacht und dieses Ergebnis in einer Tabelle ausgegeben. Unter der Tabelle gibt es die möglichkeit weitere einträge in die Tabelle zu schreiben oder einträge zu löschen. Das ausgeben der Tabelle und schreiben usw. funktioniert alles. allerdings Aktualisiert mir Drupal 6 nicht die Tabelle, also wenn ich zum Beispiel einen eintrag lösche, steht er in der Tabelle noch da obwohl er in der Datenbank schon weg ist. In Drupal 7 funktioniert das alles ohne Probleme, wenn man etwas in der Datenbank löscht, wird es in der Tabelle auf der Website auch sofort aktualisiert.
Der einzigste Unterschied am Quellcode zwichen Drupal 6 und Drupal 7 ist die Datenbankabfrage. Meine Frage wäre gibt es eine Funktion in Drupal 6 um die Seite selber neu aufzurufen bzw. zu aktualisieren, denn wenn man die Seite selber aktialisiert wird die Tabelle korrekt angezeigt.
Gruß
- Anmelden oder Registrieren um Kommentare zu schreiben
Wie sieht denn dein Quellcode
am 18.08.2013 - 14:26 Uhr
Wie sieht denn dein Quellcode für das Eintragen / Entfernen der Daten aus der Tabelle aus? Nutzt du hier die Drupal eigene form API ?
Hier gibt es - auch in Drupal 6 schon - die Möglichkeit eine URL für den $form['#redirect'] zu definieren.
Dies wäre in deinem Falle wahrscheinlich die einfachste Lösung.
Ein Beispiel für die Implementierung findest du auf drupal.org:
https://drupal.org/node/134000
SteffenR
Hallo, danke für die Antwort,
am 19.08.2013 - 08:36 Uhr
Hallo,
danke für die Antwort, also ich benutze ganz normal die funktion db_query($sql_statement);
Ich habe da jetzt was anderes gefunden das auch funktioniert, ein drupal_goto($GLOBALS['base_url'], "q=xxx"); ich habe die ganze Zeit nach aktualisierung in zusammenhang mit drupal gesucht und nichts gefunden, mit dem stichwort weiterleiten hatte ich es dann sofort.
Es wird die URL komplett neu aufgerufen und die aktualisierungen sind dann da.
hsler schrieb Hallo, danke
am 19.08.2013 - 16:53 Uhr
Hallo,
danke für die Antwort, also ich benutze ganz normal die funktion db_query($sql_statement);
Ich habe da jetzt was anderes gefunden das auch funktioniert, ein drupal_goto($GLOBALS['base_url'], "q=xxx"); ich habe die ganze Zeit nach aktualisierung in zusammenhang mit drupal gesucht und nichts gefunden, mit dem stichwort weiterleiten hatte ich es dann sofort.
Es wird die URL komplett neu aufgerufen und die aktualisierungen sind dann da.
drupal_goto() ist natürlich die "Holzhammermethode" - sauberer wäre hier das schon angesprochene #redirect, weil dies genau für solch Zwecke in der Form-API vorhanden ist. Aber wenn es für dich so funktioniert passt es ja.
SteffenR
drupal_redirect_form
am 02.09.2013 - 14:58 Uhr
Hallo,
danke für die Antwort, also ich benutze ganz normal die funktion db_query($sql_statement);
Ich habe da jetzt was anderes gefunden das auch funktioniert, ein drupal_goto($GLOBALS['base_url'], "q=xxx"); ich habe die ganze Zeit nach aktualisierung in zusammenhang mit drupal gesucht und nichts gefunden, mit dem stichwort weiterleiten hatte ich es dann sofort.
Es wird die URL komplett neu aufgerufen und die aktualisierungen sind dann da.
drupal_goto() ist natürlich die "Holzhammermethode" - sauberer wäre hier das schon angesprochene #redirect, weil dies genau für solch Zwecke in der Form-API vorhanden ist. Aber wenn es für dich so funktioniert passt es ja.
SteffenR
wenn man sich die funktion drupal_redirect_form anschaut, dann sieht man das drupal auch nichts anderes macht als das goto am ende aufzurufen, habe aber es jetzt auch mit drupal_redirect_form gemacht, sieht im code einfach schöner aus:
<?php
php function drupal_redirect_form($form, $redirect = NULL) {
$goto = NULL;
if (isset($redirect)) {
$goto = $redirect;
}
if ($goto !== FALSE && isset($form['#redirect'])) {
$goto = $form['#redirect'];
}
if (!isset($goto) || ($goto !== FALSE)) {
if (isset($goto)) {
if (is_array($goto)) {
call_user_func_array('drupal_goto', $goto);
}
else {
drupal_goto($goto);
}
}
drupal_goto($_GET['q']);
}
}
?>