mit link löschen funktioniert nur per doppelklick

Von: , Frage gestellt am Mo, 31. Dez 2007

Hallo Forum,

Ich habe ein Uploadscript mit dem ich Dateien hochladen und einzelne hochgeladene Dateien wieder löschen kann.

Beim Hochladen der Dateien werden die Dateien direkt in der Datenbank gespeichert und im Anschluß im selben Formular untereinander angezeigt.

Funktioniert super.

Nun habe ich für jeden hochgeladenen Datensatz einen link eingebaut, mit dem ich einzelne Dateien wieder löschen kann.

Problem:

Das Löschen der Dateien ist leider immer nur per Doppelklick auf den Link möglich. Erst dann wird die ausgewählte Datei gelöscht.

Ich habe dies im Internet Explorer 6.x und Firefox 2.0x probiert. Das Resultat ist leider dasselbe.

Der Link sieht folgendermassen aus:

echo '<tr><td>' . $row[0] . ' - ' . $row[1] . ' - ' . $row[2] . ' - ' . $row[3] . '</td>';
echo '<td><a name="loeschen" id="loeschen" href="?del_id=' . $row[0] . '">
<img border="0" src="images/delete.png"></a> (Doppelklick)</td></tr>';


Die Funktion, die das Löschen ermöglicht sieht folgendermassen aus:


<?php

if (!$_REQUEST['del_id']) {
} {
$del_id = $_REQUEST['del_id'];
$sql3 = "Delete from file_upload where id='$del_id'";
}
$result3 = mysql_query($sql3) or die('Fehler (3): ' . mysql_error());

?>


Das Funktioniert auch ganz gut, wenn nur diese blöde Kleinigkeit nicht wäre.

Weiss jemand woran das liegt und was man dagegen machen kann?

Würde mich über jeden Tipp freuen.

Viele Grüße aus Köln

Laurenzo

6 Antworten zu dieser Frage

  1. Antwort von nach 8 Stunden 0 hilfreich
    Re: mit link löschen funktioniert nur per doppelkl

    Hallo!

    Mal mit nem header("Location: http:// ... ") ausprobiert nach dem löschen wieder auf die Seite zu leiten? Das Problem gibts öfters, da der die Seite aufruft, das Dingen löscht, vorher aber nochtmal listet.Du musst nach dem löschvorgang die Seite erneut laden, wie, da gibts diverse Möglichkeiten. Ich mache es immer mit dem header() befehl. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

    • Antwort von nach 11 Stunden 0 hilfreich
      Re^2: mit link löschen funktioniert nur per doppel

      Hi!

      Besten Dank für diesen Hinweis. Da hatte ich nicht dran gedacht.
      Dennoch gibts da ein Problem. Mein Browser sagt mir immer wieder "Fehler: Umleitungsfehler. Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

      Woran kann das denn liegen? Ich habe die header()-Zeile sowohl mitten im Code als auch in der Kopfzeile im Header des Codes eingebaut. Der Fehler ist jedoch immer der selbe.

      Hast du noch ne Idee? Ich werde mal schaun ob ich den Fehler ausfindig machen kann. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach 14 Stunden 0 hilfreich
        Re^3: mit link löschen funktioniert nur per doppel

        Ja, du darfst den Headerbefehl nur in deine if-Abfrage machen, wenn du die ganz oben in deiner Seite einsetzt, führt er den header() Befehl immer aus und führt zu einem Endlos-Reaload. Also nur in die if-Abfrage, wo du die Daten löschst

        • Antwort von nach 16 Stunden 0 hilfreich
          Re^4: mit link löschen funktioniert nur per doppel

          Super! Vielen Dank...hat funktioniert! :-)

          Habe aber noch eine andere Frage:

          Ich habe zwei Formulare in zwei verschiedenen Dateien (Datei "a" und Datei "b"-->upload-Form)

          Mit beiden Dateien kann man bestimmte Daten in die Datenbank speichern. Funktioniert auch wunderbar. Nun habe ich in Datei "a" einen IFrame eingebaut, in dem ich Datei "b" nun aufrufe.
          Das funktioniert auch soweit ganz gut.

          Datei "b" speichert sofort die Datei in die Datenbank, sobald eine ausgewählt wird. In einer Liste unter dem Formular erscheint dann auch die Datei. *Daher auch die vorherige Frage mit dem refresh ;-) *

          Wenn ich Datei "b" separat im Browser (Firefox 2.x) aufrufe, funktioniert sie einwandfrei. Wenn ich aber die Datei "b" im IFrame aufrufe und den Button zum Auswählen einer Datei betätige, dann macht die Datei aber nichts weiter und bleibt einfach stehen. Der upload-Button enthält einen Funktionsaufruf der bei "OnChange="funktion()" die Anfrage an die Datei "b" sendet und die auffordert, die Daten in die Datenbank zu speichern.
          Das funktioniert aber nicht weiter. Was muß ich tun, damit das funktioniert? Langsam nervt es mich. Bin schon seit heute morgen dran :-( .

          Hast du ne Idee? Wenn du den Code sehen willst, dann poste ich ihn dir gleich.

          Besten Dank für deine Hilfe! Ja, du darfst den Headerbefehl nur in deine if-Abfrage machen,
          wenn du die ganz oben in deiner Seite einsetzt, führt er den
          header() Befehl immer aus und führt zu einem Endlos-Reaload.
          Also nur in die if-Abfrage, wo du die Daten löschst

          • Antwort von nach 2 Tagen 0 hilfreich
            Re^5: mit link löschen funktioniert nur per doppel

            das klingt jetzt aber mehr nach JavaScript Problem? ;)

            Meine Vermutung ist, dass da irgendwie ein Befehl drin ist, der innerhalb eines Frames nicht mehr funktionieren kann...
            von wegen parent und child und so...
            Aber mit JS kenn ich mich nicht soooo gut aus...

            Grüße
            Munich

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^6: mit link löschen funktioniert nur per doppel

              Hi!
              Habs schon gelöst! ;-)

              Aber vielen Dank für deine Antwort.

              Lösung: Ich habe einen refresh in einer if-Verzweigung eingebaut, sodass der browser nach jedem Klick auf den Link (zum Löschen eines Datensatzes) einen refresh macht. Das klappt super. :-D

              Viele Grüße aus dem schönen Köln
              Laurenzo [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!