jaegerschnitzel
Mitglied
Ich habe ein Problem mit einem Formular, mit dem ich Kommentare verwalten kann.
Wenn ich einen Kommentar erfolgreich bearbeite verschwindet das "Bearbeitungsfeld", bei einem Fehler bleibt es sichtbar. Soweit so gut.
Wenn ich einen Kommentar bearbeite und speichere und gleich darauf nochmal den gleichen Kommentar bearbeiten mag geht das nicht. Mache ich zwischendurch etwas anderes klappts wieder.
Das Problem liegt an meiner Abfrage, aber ich weiß nicht wie ich es richtig machen sollte, hab schon einige Möglichkeiten ausprobiert.
Hier mein Code:
Hoffentlich hab ich jetzt nichts vergessen
Wenn ich einen Kommentar erfolgreich bearbeite verschwindet das "Bearbeitungsfeld", bei einem Fehler bleibt es sichtbar. Soweit so gut.
Wenn ich einen Kommentar bearbeite und speichere und gleich darauf nochmal den gleichen Kommentar bearbeiten mag geht das nicht. Mache ich zwischendurch etwas anderes klappts wieder.
Das Problem liegt an meiner Abfrage, aber ich weiß nicht wie ich es richtig machen sollte, hab schon einige Möglichkeiten ausprobiert.
Hier mein Code:
PHP:
$errors = array(); // Nachrichten (Fehler, Erfolg)
//--------------------------------------------------------------------------
// bearbeiteter Kommentar speichern
//--------------------------------------------------------------------------
if(!empty($_POST['kommentar_bearbeiten']))
{
$p_name = strip_tags(trim(stripslashes($_POST['p_name'])));
$p_text = htmlspecialchars(trim(stripslashes($_POST['p_text'])));
$nid = $_GET['p_kbearb'];
if (empty($p_name)) {$errors[] = 'nachrichtenbox("fehler","Name muss angegeben werden.");';}
else
{
mysql_verbinden();
$db_abfrage = "UPDATE kommentare SET
name='" . $p_name . "',
kommentar='" . $p_text . "';";
$erfolg = mysql_query($db_abfrage);
if(!$erfolg)
{
$errors[] = 'nachrichtenbox("fehler","Fehler beim Bearbeiten des Kommentars.");';
}
else
{
$errors[] = 'nachrichtenbox("erfolg","Kommentar erfolgreich geändert!");';
$status = '1';
}
}
}
//------------------------------------------------------------------------------
// Kommentare ausgeben
//------------------------------------------------------------------------------
[...] // DB-Anweisungen
while($k_zeilenfeld = mysql_fetch_array($k_datensatz))
{
[...] // Kommentar ausgeben
// Bearbeitungslink ausgeben
echo '<a href="' . $_SERVER['PHP_SELF'] . '?p_kat=news_detail&p_kbearb=' . $comment_id . '
" title="Kommentar bearbeiten"></a>';
}
//------------------------------------------------------------------------------
// Formular: Kommentar bearbeiten
//------------------------------------------------------------------------------
if(!empty($_GET['p_kbearb']) && !isset($status))
{
[...] // DB-Anweisungen
echo '<form action="' . $_SERVER['PHP_SELF'] . '?p_kat=news_detail&p_kbearb='
. $_GET['p_kbearb'] . '&p_detail=' . $news_id . '#comment_write" method="post">';
echo '<p><label>Name:</label><input type="text" class="text" value="' . $zeilenfeld['name']
. '" name="p_name"></p>';
echo '<p><label>Kommentar:</label><textarea name="p_text" cols="" rows="">'
. $zeilenfeld['kommentar'] . '</textarea></p>';
echo '<div class="buttons"><p><button type="submit" value="kommentar_bearbeiten"
name="kommentar_bearbeiten"><img src="layout/ok.png" /> Speichern</button></p></form>';
}
//------------------------------------------------------------------------------
// Meldungen ausgeben
//------------------------------------------------------------------------------
if (!empty($errors))
{
foreach ($errors as $error)
{
eval($error);
}
}