Schnelle Benutzerinteraktion abfangen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schnelle Benutzerinteraktion abfangen

    Ein Problem das mich seit längerem plagt, möchte es mal an einem Beispiel einer Sortierung beschreiben, die ich vor kurzem geschrieben habe.

    Folgendes:
    Ich habe eine Tabelle mit beliebigem Inhalt.
    Rechts davon habe ich zwei Pfeilchchen mit denen man die Priortät bestimmen kann (danach wird dann sortiert, also nach oben und unten verschoben).

    Falls der Sortierungseintrag in der DB 1 ist (höchstes) dann wird der Pfeil für eine Erhöhung nicht angezeigt, anders herum bei der niedrigsten Sortierung (z.B. 5), die in der DB gefunden werden konnte, nur als Hinweis.

    Das funktioniert so weit perfekt.

    Das Problem:
    Wenn der User mehrmals sehr schnell hintereinander auf den Pfeilchen für die Änderung klickt, erhalte ich z.B. negative Werte für die Sortierung und alles gerät durcheinander und ist nicht mehr bedienbar.

    Meine Vermutung ist, dass das Skript nicht mehr vollständig ausgeführt werden kann und deshalb dieser Fehler entsteht.

    Ein gekürzter Ausschnitt meines Skripts:
    PHP-Code:
    if(isset($_GET["sortup"])){
    // verändert das höhere objekt in der db anhand der objdaten
    // hier sortierung nach oben (2-->1)
    mysql_query(
    " update obj " .
    " set obj_sort = " obj_sort() . // 2
    " where obj_sort = " .  obj_sort() - 1) . // 2-1 = 1
    " and obj_id = " obj_id()); 
        
    //altes objekt ändern und in die db zurückschreiben
    $anderesobj->set_obj_sort($anderesobj->get_obj_sort() - 1); // 1
    $anderesobj->update();

    Das ist natürlich nur ein prinzipielles Beispiel für dieses Problem.
    Wie kann man das umgehen?
    Zuletzt geändert von codeknecht; 31.10.2006, 22:20.

  • #2
    ich vermute eher, dass du über die grenzen (erstes/letztes element) hinaus gerätst. Ein reines ausblenden der elemente reicht da natürlich nicht. Du musst schon überprüfen (BEVOR du eine Änderung in der DB vornimmst), ob man überhaupt weiter nach oben/unten kann. Wenn nicht, dann führst du einfach kein Update aus und gut ist.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      ich vermute eher, dass du über die grenzen (erstes/letztes element) hinaus gerätst. Ein reines ausblenden der elemente reicht da natürlich nicht. Du musst schon überprüfen (BEVOR du eine Änderung in der DB vornimmst), ob man überhaupt weiter nach oben/unten kann. Wenn nicht, dann führst du einfach kein Update aus und gut ist.
      Ja das stimmt sogar in diesem Fall.

      Was ich noch wissen will:
      Allgemein: Wie kann man eine teilweise Ausführung eines Skripts vermeiden?
      Zuletzt geändert von codeknecht; 31.10.2006, 22:34.

      Kommentar


      • #4
        ignore_user_abort

        Kommentar


        • #5
          Vielen Dank.

          Kommentar


          • #6
            http://www.php-resource.de/forum/sho...ighlight=order

            Kommentar

            Lädt...
            X