• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Reload Funktion

Status
Für weitere Antworten geschlossen.

Karl das kahle Moorhuhn

Neues Mitglied
Folgendes: Ich entwerfe gerade ein DAU (Dümmster Anzunehmender User)-CMS, das komplett ohne Datenbanken auskommt und trotzdem dynamisch ist, d.h. die Website legt automatisch Textdateien an, in denen sie den Inhalt abspeichert. Man soll die Inhalte komplett online verändern können. Soweit sogut, doch mein Prob ist momentan folgendes:

In einer Textdatei steckt der Inhalt, der wird ausgelesen und zwar in eine Textarea. Der User kann nun den bisherigen Inhalt in der Textarea sehen und seinen Wünschen entsprechend anpassen. Unter der Textarea sieht er, wie es später dann aussieht. Wenn er auf submit klickt, dann soll sich das Fenster neuladen und sowohl der Inhalt der Textarea, wie auch das was drunter steht soll sich ändern.

Das bekomm ich jedoch nicht hin, zumindest nicht in einem Vorgang. Bei mir ist es so, dass wenn ich auf Submit klicke, dass dann zwar der Textarea-Inhalt sich ändert, aber nicht das, was drunter steht, sodass ich einen zweiten Button einfügen musste, mit der der DAU die Seite neu läd.

Ich habe es mit Java-Script probiert, à la:

PHP:
echo "<input type='submit' value='Inhalt ändern' onClick='javascript:location.reload()'>";
doch so geht das nicht, dann speichert er nicht mehr richtig ab

Zwar sind 2 Schritte nicht der Weltuntergang, aber vielleicht überfordere ich meinen DAU. Kennt einer ne Lösung?
 
Sende es doch an eine zweite Seite, die mittels GET ermittelt, um welchen Text es sich handelt, und ausliest
 
Kannst du uns etwas mehr Quelltext zeigen? Ich vermute einfach mal du lässt da etwas n der Falschen reihenfolge ablaufen.
 
Wenn ich mich nicht irre, kannst du das wie folgt machen:
PHP:
<?php
    if([ABFRAGE])
        header('Location: [SELBE SEITE]');
?>
HTML:
<form action="<?php $_SERVER['PHP_SELF'] ?>">
    [FORMULAR]
</form>
header() muss allerdings vor jedem HTML-Code (auch vor dem Doctype und <html>) stehen.
 
Zuletzt bearbeitet:
@noob: sicher wäre das eine Möglichkeit, doch ich will es ja beides auf einer Seite anzeigen lassen

@verhueterli: Leider führen deine Vorschläge nicht zum Ziel. Wenn ich die Header-Veriante nehme, dann erscheint nur eine leere Seite, oder ich laufe wie in der anderen Möglichkeit in die Gefahr, in eine Dauer-Reload-Schleife zu kommen, denn ich wüsste keine gescheite Abfrage, die das verhindert

@prophet: Etwas mehr code:

Davor kommt: Text-Datei auslesen und in $str speichern

PHP:
echo "<form action='{$_SERVER[PHP_SELF]}' method='POST'>";
echo "<textarea name='inhalt' cols='50' rows='5'>" . $str . "</textarea><br>\n";
echo "<input type='submit' name='submit' value='Speichern'>";
echo "</form>";
echo "<input type='button' value='Reload' onClick='javascript:location.reload()'>";

Danach kommt: $_POST['inhalt'] in die gleiche Textdatei speichern
 
PHP:
<?php
    $submit = $_POST['submit'];
    $inhalt = $_POST['inhalt'];

    if($submit == true)
    {
        if(!empty($inhalt)) // erweiterbar
        {
            // [ANWEISUNGEN]
            header('Location: [SEITE]');
        }
    }
?>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
    <textarea name="inhalt" cols="50" rows="5"><?php echo $str; ?></textarea>
    <br />
    <input type="submit" name="submit" value="Speichern" />
</form>
Das sollte funktionieren - wo liegt das Problem?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben