Daten erneuern nach dem Abschicken

Shinzo

Mitglied
Hallo ich habe ein Editier-Script erstellt,

klappt wunderbar ohne Probleme, unten wird ein echo Befehl "Daten erfolgreich geändert" wiedergegeben.

Ich möchte nun, dass die Daten im Formular sofort, nach dem Submit geändert/also aktuallisiert werden. Nach dem neusten Stand gebracht werden.

Hier das Script:

PHP:
<?

	$db = mysql_connect($dbhost, $dbuser, $dbpassword); 
	mysql_select_db($dbase,$db);

	$sql = "SELECT * FROM reviews WHERE id = '$id'";
	$resultat = mysql_query ($sql);
	$modif = mysql_fetch_array ($resultat);

?>
<table border="0" width="100%" cellspacing="2" cellpadding="3" border="0">
  <tr>
    <td width="100%" bgcolor="#FFFFFF"><b><a href="admin/index.php">Admin Control Panel</a> > Review editieren/löschen</b></td>
  </tr>
  <tr>
    <td width="100%">

      <form method="post" action="edit_review.php?id=<?php echo $modif['id']; ?>">
       <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
	<tr>
        <td width="100">Art:</td>
        <td><select name="art" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"><option>Anime</option>
	<option>Manga</option><option>Game</option></select></td>
      </tr>
	 <tr>
        <td width="100">Name:</td>
        <td><input name="name" type="text" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma" value="<?php echo $modif['name']; ?>"></td>
      </tr>
      </tr>
	 <tr>
        <td width="100">Genre:</td>
        <td><select value="<?php echo $modif['genre']; ?>" name="genre" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma">
	<option>Action</option><option>Hentai</option><option>Abenteuer</option>
	<option>Fantasy</option><option>Fiction</option></td>
      </tr>
	 <tr>
        <td width="100">Einleitung:</td>
        <td><textarea value="<?php echo $modif['einleitung']; ?>" rows="6" name="einleitung" cols="50" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"><?php echo $modif['einleitung']; ?></textarea></td>
      </tr>
      <tr>
        <td>Hauptteil:</td>
        <td><textarea rows="10" value="<?php echo $modif['hauptteil']; ?>" name="hauptteil" cols="50" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"><?php echo $modif['hauptteil']; ?></textarea></td>
      </tr>
       <tr>
        <td>Schluss/Eigene Meinung:</td>
        <td><textarea rows="5" name="schluss" cols="50" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"><?php echo $modif['schluss']; ?></textarea></td>
      </tr>
      <tr>
   <tr>
        <td>Bewertung(Punkte):</td>
        <td><select value="<?php echo $modif['bewertung']; ?>" name="bewertung" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma">
	<option>10</option><option>9</option><option>8</option>
	<option>7</option><option>6</option><option>5</option><option>4</option><option>3</option>
	<option>2</option><option>1</option></select></td>
      </tr>
      </tr>
	 <tr>
        <td width="100">Verlag:</td>
        <td><input value="<?php echo $modif['verlag']; ?>" name="verlag" type="text" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"></td>
      </tr>
      <tr>
        <td valign="top">FSK Freigabe(Jahre):</td>
        <td><select value="<?php echo $modif['fsk']; ?>" name="fsk" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma">
	<option>12</option><option>14</option><option>16</option>
	<option>18</option></td>
      </tr>
	 <tr>
        <td width="100">Bild:</td>
        <td><input value="<?php echo $modif['bild']; ?>" name="bild" type="text" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"></td>
      </tr>
	<tr>
        <td width="100">Offizielle Webseite:</td>
        <td><input value="<?php echo $modif['homepage']; ?>" name="homepage" type="text" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"></td>
      </tr>
	<tr>
        <td width="100">Art:</td>
        <td><select name="action" style="COLOR: ahoma"><option value="edit_review"> Editieren</option><option value="delete_review"> Löschen</option></select>
      </td>
      </tr>
	<tr>
        <td></td>
        <td><input type="submit" name="submit" value="Speichern" style="COLOR: #000000; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Tahoma"></td>
      </tr>
    </table>
  </form>

<?

        if ($action == "edit_review")
	{
		if (strlen($name) < 0)
			{
			echo("<center><b>Name eingeben!<br>");
			}
		else
			{
	$query = ("UPDATE reviews SET art='$art', name='$name', genre='$genre', einleitung='$einleitung', hauptteil='$hauptteil', schluss='$schluss', bewertung='$bewertung', verlag='$verlag', fsk='$fsk', bild='$bild', homepage='$homepage' WHERE id = '$id' ");
	$result = mysql_query($query);
	echo("<font size=\"2\" face=\"Verdana\"><b>» Das Editieren war erfolgreich!</b></font>");
		}
	}
	

	elseif ($action == "delete_review")
	{

	$loeschen = ("DELETE FROM reviews WHERE id=$id ");
	$result2 = mysql_query($loeschen, $db);

	echo("<font size=\"2\" face=\"Verdana\"><b>» Das Löschen war erfolgreich!</b></font>");
	}
?>

</td>
</tr>
</table>

Gibst da ne kleine gute Lösung oder muss ich das irgendwie anders machen, um die Daten sofort erneuern zu lassen?

Ich danke im Voraus!
 
Im Moment wird die Meldung "Das Editieren war erfolgreich!" ausgegeben. Du willst aber stattdessen, dass dann wieder die Daten (nur eben die aktuellen) angezeigt werden, oder?

Du könntest eine neue Datei schreiben, in der nur das Script zum Editieren steht. Anschließend kannst du die neuen Daten per Header (also automatischer Weiterleitung) aufrufen:
PHP:
<?php
//Dein Script zum Editieren der Daten
header("Location: index.php?id=".$id); //index.php oder wie die Datei eben heißt, in der die Daten angezeigt werden
?>
In der Datei muss das <?php in der ersten Zeile stehen, da sonst der Header nicht gesendet werden kann (Denn dieser muss als erstes gesendet werden). Deshalb musst du zum Editieren eine neue Datei erstellen.
Ich hoffe ich konnte helfen.
 
Zuletzt bearbeitet:
Ja, nur dass im Browser keine Seite dazwischen erscheint. Der User bekommt von der Weiterleitung nichts mit.
 
Danke schon gut, lag an mir ^^ ... hab im UPDATE Teil nich die felder defeniert(habs für mehrere bereiche das gleiche script, und am anderen getestet, und da waren die noch nich definiert ), die geändert werden sollten , klappt jetzt wunderbar ! Danke!

Noch ne kleine Frage:

Kann man dann auch einen Echo Befehl übergeben, dass es "Erfolgreich bearbeitet wurde" oder es "Erfolgreich gelöscht wurde" ?
 
Zuletzt bearbeitet:
Mit dem Header kannst du keine Befehle senden. Allerdings kannst du es so versuchen:

Du könntest im Header folgendes hinzufügen:
PHP:
<?php
//Dein Code zum Editieren
header("Location: index.php?id=".$id."&q=yes");
?>
Dann musst du in der "Datenübersicht" an der Stelle an der du die Meldung "Erfolgreich editiert" haben willst, folgendes hinzufügen:
PHP:
<?php
//die gewünschte Stelle
if(isset($q) AND $q == "yes") {
    echo "Erfolgreich editiert";
}
?>
Die Meldung wird also angezeigt, wenn der Header gesendet wurde, sprich wenn du etwas editiert hast.

mfg
split

//EDIT: So kannst du es natürlich auch beim Löschen machen
 
Zurück