Eingabe unterhalb Tabelle

  • Ich habe ein Skript mit einer MySQL-Tabelle. Um Daten in die Tabelle einzufügen wird ein zweites Skript aufgerufen (<form action="new.php"...) und es öffnet sich eine weitere Seite mit einem Formular und Textfeldern in das die Daten für die Tabelle eingetragen werden.
    Ich möchte erreichen, dass sich keine zweite Seite mehr öffnet und die Texteingabefelder sich direkt unter der Tabelle befinden. Ist das möglich, wenn ich zwei Skripte habe?

  • Ja, klar ist das möglich.

    Du musst einfach den Inhalt von new.php in deine Tabellenseite kopieren, und in die Form einfach den neuen Seitennamen stellen, oder action leer lassen.

    MfG

    Frauen lügen nie, selbst wenn sie die Wahrheit nur erfinden müssen.
    Leute die mit gidf antworten wollen, sollten lieber gar nicht antworten. -> http://www.google.de/search?q=xyz tuts auch. :rolleyes:

  • In groben Zügen:

  • So wie ich es verstanden habe, muss ich auf jeden Fall die Skripte zusammenfügen, stimmt's?
    Jetzt ist das Ganze noch etwas komplizierter (zumindest für mich): Es gibt nicht nur ein new.php sondern auch ein edit.php und beide sollen das gleiche Texteingabefeld verwenden. Auch die Submit-Buttons sollen zusammen neben der Tabelle angebracht werden.
    Wie soll ich vorgehen?

  • Den "new"-Teil kannst du, wenn du willst ja unter der Tabellenausgabe lassen (ich würde das aber nicht machen) und dann nimmst du noch ein Script zum Editieren.

    Mein Vorschlag wäre:

    Ein Script, dass die Daten anzeigt. Hinter jedem Datensatz gibt es einen Link, der dann z.B. so aussehen würde: <a href="edit.php?id=idAusDB&action=edit">Bearbeiten</a>. Und dann noch oberhalb/unterhalb der Tabelle einen Link <a href="edit.php?action=new">Neu</a>

    In der edit.php kannst du dann anhand der Action erkennen, was zu tun ist.

    Einmal editiert, zuletzt von bandit600 (25. Januar 2009 um 18:30)

  • Danke für Deine Hilfe.
    Wenn ich Dich richtig verstehe würdest Du edit.php separat lassen und eine neue Seite zur Bearbeitung der Daten aufrufen (vielleicht kleineres Popup-Fenster)?

    Zitat

    Hinter jedem Datensatz gibt es einen Link

    : Dies habe ich statt eines Links hinter jedem Datensatz mit Radiobutton 'gelöst'.


    Es sollten eigentlich für 'Neu' und Bearbeiten' Buttons neben der Tabelle sein. Ist das sehr schwierig zu realisieren?

  • Kein Popup-Fenster, das ist doch immer Quatsch. Ein Popup-Blocker und schon gibts Probleme. Ansonsten hast du das schon richtig verstanden.

    Jeder Radiobutton bekommt als Value die ID aus der DB, damit kommst du dann an den richtigen Datensatz.

    Mit den Buttons kannst du das auch lösen, ein Submit-Button mit Value "Edit" und einen mit "New" und schon kannst du in edit.php unterscheiden.

  • Ich habe new.php in meine Tabellenseite integriert. Nach dem Eingeben neuer Daten werden diese aber erst nach betätigen des Akualisierungs-Buttons in der Tabelle angezeigt.
    Wie kann ich die Aktualisierung automatisch durchführen lassen?

    Danke.

  • Keine Ahnung, wie man dir so helfen soll. Ohne den Quellcode zu kennen, kann man nur raten und das ist nicht Sinn der Sache. Aber ich tippe mal, dass irgendetwas an der Reihenfolge des Scriptablaufes nicht stimmt.

  • Hier ist mein etwas komprimiertes Skript. Ich habe versucht, dass Skript so umzustellen wie Du (bandit600) mir es gestern mitgeteilt hast. Aber es hat nicht funktioniert. Auch öffnet sich noch eine Bestätigungsseite ("New info added").
    Was muss ich ändern?

    HTML
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" style="width: 910px; height: 75px;">
    .
    .
    <input type="submit" name="submit" value="Hinzufügen" style="width: 130px; float: right; " />
    </form>



    Danke.

  • Leute, bitte!!

    Zitat

    Aber es hat nicht funktioniert.


    Das ist definitv keine Problembeschreibung, damit kann man nichts anfangen. Und aus den Codeschnipseln kann man auch nicht viel erkennen. Trotzdem ein Tipp, der in vielen Fällen ungemein weiterhilft:

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Weiterhin solltest du dich bzgl. den Funktionen mysql_error und mysql_real_escape_string schlau machen.

  • Ungetestet und dient nur zur Anschauung einer möglichen Problemlösung!

  • Sorry, mein

    Zitat

    Aber es hat nicht funktioniert.

    hat sich auf meine vorherigen Antworten bezogen. Das war natürlich etwas zu allgemein ausgedrückt.
    Das Skript funktioniert. Edit.php muss nur noch mit Tabelleskript verbunden werden (Submit-Button ohne Funktion).
    Was nicht 'funktioniert' ist, dass die Tabelle nach dem Hinzufügen der Daten nicht automatisch upgedated wird. Dafür hatte ich auch das Skript gepostet. Ich hoffe für diesen Zweck ist es ausreichend.
    Für die Anleitung die Du mir geschrieben hast möchte ich mich bedanken und ich werde mich so bald wie möglich damit beschäftigen.
    Danke für Deine Zeit!