Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben
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.

Geschrieben

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? :)

Geschrieben

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.

Geschrieben

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

Geschrieben

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,

Geschrieben
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.

Geschrieben

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?

Geschrieben

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

Geschrieben

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"])
...

Geschrieben

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

Geschrieben
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)

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...