sunnyw86 Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Hi, ich hoffe ihr könnt mir helfen. Ich habe ein Formular und dort kann man Änderungen vornehmen. Diese Änderungen werden dann bei Klick auf Button speichern in die Datenbank eingetragen. Wenn ich aber auf Button speichern klicke, gehen die Änderungen weg. Erst wenn ich die Seite neu lade erscheinen die neuen Daten. Liegt das an der Methode Post oder wie kann ich das ändern? Vielen Dank. Zitieren
robotto7831a Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Was heißst "die Änderungen gehen weg"? Frank Zitieren
geloescht_JesterDay Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Wenn ich aber auf Button speichern klicke, gehen die Änderungen weg. Erst wenn ich die Seite neu lade erscheinen die neuen Daten. Liegt das an der Methode Post oder wie kann ich das ändern? Hm, der Blick in meine Glaskugel (die, zugegebenen, sehr sehr trüb ist) sagt mir: Du liest erst die Daten und füllst deine Anzeige und speicherst die geposteten Daten dann erst in der DB. Zitieren
Steffen3:16 Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Hooo Hooo das Problem kenne ich, du musst etwas an deinem Code rumbasteln. Du hast es momentan so... ->DAS WIRD ALLES AUF DEINER SEITE ANGEZEIGT<- ->HIER WIRD ALLES VERARBEITET WAS DURCH DEN BUTTON ANKOMMT<- Dreh dieses Vorhaben einfach um, d.h. du machst erst deine Änderung (an der Datenbank oder ähnliches) und dann bereitest du die Seite auf, und holst Sachen aus der Datenbank, dann sind die Änderungen auch drin- logisch oder? Zitieren
sunnyw86 Geschrieben 25. Juni 2007 Autor Geschrieben 25. Juni 2007 Nein. Also jemand geht im Menü auf Profil bearbeiten. Danach öffnet sich eine neue php Seite. Auf dieser Seite werden die Daten aus der Datenbank in den Feldern geladen. Wie der Name schon sagt, soll man das Profil bearbeiten können. Also nachdem die Seite geladen wurde mit den Daten kann ein User seine Adresse zum Beispiel ändern. Diese Änderungen sollen nach Klick auf Button speichern in der Datenbank geändert werden. Das klappt auch. Aber wenn ich auf Button speichern drücke werden die neuen Daten zwar in der Datenbank gespeichert aber in den Textfeldern kommen die alten Daten wieder. Erst wenn ich die Seite neu lade sind die neuen Änderungen in der Textbox. Sie sollen aber in den Textboxen erst garnet weggehen wenn ich auf Button speichern klicke. Ich hoffe ich konnte es jetzt ganz gut erklären. Zitieren
robotto7831a Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Poste doch mal etwas Code. Frank Zitieren
Steffen3:16 Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Ich wär auch dafür das du mal was Code postest, sonst reden wir aneinander vorbei Ich bin immer noch der Meinung das du bevor du die PHP Seite aufbaust, nicht die aktuelle Datenbankabfrage machst, was überhaupt in der DB drinsteht! So hat man nämlich immer noch alten Daten im Hintergrund gespeichert :old Zitieren
MaddinMV Geschrieben 26. Juni 2007 Geschrieben 26. Juni 2007 ich bin eher der meinung, das er es keinen Refresh der DB abfrage macht...wenn du speichern drueckst, laed sich deine Seite nicht neu in den Speicher, entweder du leitest nachm Speichern wieder auf eine andere Seite um, oder du laedst die gleiche seite NEU! sprich ein Redirect auf die Seite selber, damit solltest du das Problem lösen koennen [EDIT] Ideal waere vielleicht eine zwischenseite, wo du die Info gibst, das die Daten geaendert wurden und er dann wieder auf die Profilseite geht... Daten bearbeiten >> speichern >> Redirect SpeicherungsInfo >> Redirect Datenbearbeiten ... weißt was ich mein?[/EDIT] so long, Zitieren
geloescht_JesterDay Geschrieben 26. Juni 2007 Geschrieben 26. Juni 2007 ich bin eher der meinung, das er es keinen Refresh der DB abfrage macht...wenn du speichern drueckst, laed sich deine Seite nicht neu in den Speicher, entweder du leitest nachm Speichern wieder auf eine andere Seite um, oder du laedst die gleiche seite NEU! Ich bin der Meinung, dass wenn man solche Speicherungen etc macht, man die einfach macht, bevor man was aus der DB lädt. Ich geh jetzt mal nicht von AJAX aus, also wird durch den POST sowieso eine "neue" Seite aufgerufen. So wie das aussieht ist es dieselbe. Also: 1. Falls Daten zum speichern da sind -> speichern. 2. Daten aus DB laden. 3. HTML zusammenstellen und ausgeben. Zitieren
sunnyw86 Geschrieben 26. Juni 2007 Autor Geschrieben 26. Juni 2007 Also stellt euch doch einfach vor ihr habt euch bei einer seite angemeldet und könnt nun euer profil bearbeiten. hier gebt alles ein uns speichert. nach einem halben jahr zieht ihr aber um und wollt nun im profil die adresse ändern. ihr öffnet das profil und es stehen die daten dort, die ihr vor einem halben jahr eingegeben habt. nun ändert ihr die adresse und klickt auf speichern. jetzt mein problem. wenn ich auf speichern drücke speichert er mir zwar alles korekt in die datenbank, aber auf der seite stehen wiedet die daten die ihr vor einem halben jahr eingegeben habt. erst wenn ich wieder die seite neu lade sind die änderungen da. ich benutze die methode post, denke daran liegt es. welche methode muss ich nutzen? Zitieren
robotto7831a Geschrieben 26. Juni 2007 Geschrieben 26. Juni 2007 POST ist gut. Ohne Quellcode kann dir keiner helfen. Es ist nur ein munteres raten. Frank Zitieren
Steffen3:16 Geschrieben 27. Juni 2007 Geschrieben 27. Juni 2007 Diese Methode die wir die jetzt schon seit langem versuchen zu erklären. Pack einefach in dein Formular eine Variable rein <input type="hidden" name="senden" value="1" Dann musst du natürlich daran denken das du alle Daten vom Formular übergeben bekommnst. D.h. alle Variablen auslesen die übergeben worden sind $senden = $_POST['senden'] $Variable1 = $_POST['Variable1'] $Variable2 = $_POST['Variable2'] Dann fragst du ab: if($senden == 1) Wenn ja dann führe ein Update auf die Datenbank aus mit den neuen Daten Das machst du alles, BEVOR du deine Seite aufbaust und dein Formular füllst Wenn du jetzt deine Seite aufbaust, also die query machst und die while schleife durchläufst, sind alle neue Daten in der Datenbank, da du ja schon vorher das "UPDATE" gemacht hast! Ich hoffe du verstehst es so langsam, wenn leider immer noch nicht, dann lies dir mal nen paar Notizen auf PHP-Einfach.de - PHP lernen leicht gemacht Viel Spaß beim ausprobieren Steffen Zitieren
geloescht_JesterDay Geschrieben 27. Juni 2007 Geschrieben 27. Juni 2007 Pack einefach in dein Formular eine Variable rein <input type="hidden" name="senden" value="1" Vollkommen unnötig. <form name="userinfo" action="#"> ... <input type="submit" name="submit" value="Speichern" /> </form> [/php] und am Anfang dann einfach: [php] if isset($_POST["submit"]) ... Zitieren
Steffen3:16 Geschrieben 27. Juni 2007 Geschrieben 27. Juni 2007 Wusste doch das von dir noch ein Kommentar dazugibt, nur ich glaube in diesem Fall ist es einfacher ihm / ihr das so zu erklären! Ich denke das mit dem Formname und ne Abfrage ob jetzt submit gedrückt worden ist, ist hier völlig unangebracht. Egal, mal gucken was jetzt dabei rauskommt Zitieren
geloescht_JesterDay Geschrieben 28. Juni 2007 Geschrieben 28. Juni 2007 Wusste doch das von dir noch ein Kommentar dazugibt, nur ich glaube in diesem Fall ist es einfacher ihm / ihr das so zu erklären! Ich denke das mit dem Formname und ne Abfrage ob jetzt submit gedrückt worden ist, ist hier völlig unangebracht. Danke, immerhin hab ich deine Erwartungen erfüllt :e@sy Aber es ist ja überhaupt kein Unterschied zu dem was du machst. Der Formname steht nur der Vollständigkeit halber da und wird ja zu keinem Zeitpunkt genutzt (in dem mini Beispiel) oder abgefragt. (AFAIK sieht der Standard den aber zwingend vor) Aber du definierst extra ein hidden-Feld um das abzufragen. Du könntest aber jedes beliebige schon vorhandene Feld abfragen, da das Array $_POST ja nur im Falle einer Post-Anfrage gefüllt wird. Wenn du das mit dem Submit-Button machst, bist du halt sicher dass der immer da ist (so du es nicht über Javascript machst o.ä.). Nichts anderes tu ich ja. (Und natürlich ist das eine sehr ungenaue Prüfung, es geht nur darum ob da überhaupt was gepostet wurde) Zitieren
robotto7831a Geschrieben 28. Juni 2007 Geschrieben 28. Juni 2007 Wir sollten vielleicht jetzt mal warten bis sunnyw86 mit Quellcode rüber kommt. Alles andere bringt nichts. Frank Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.