Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit GET und jQuery Mobile

Einklappen

Neue Werbung 2019

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

  • Problem mit GET und jQuery Mobile

    Hallo Zusammen,
    bin mir nicht sicher ob mein Problem eher in den PHP oder Javascriptbereich oder doch wo anders hin, aber ich vermute mal ich bin hier richtig.


    Ich habe ein Problem mit GET Befehlen in Links und jQuery bei meinem Warenkorb / Bestellsystem. Ich füge einen Artikel über einen GET Befehl zum Warenkorb hinzu, entferne ihn, ändere die Artikelanzahl usw.

    Das funktioniert auch alles soweit bzw. konnte ich keinen Fehler feststellen bisher. Sobald ich nun aber die jquery css und js Dateien einbinde funktionieren die GET Befehle nur noch ein mal!

    D.h. ich klicke bei Artikel 1 auf den Warenkorb, daraufhin erscheint er auch ein mal im Warenkorb.. klicke ich ein zweites mal darauf, bleibt example.org/index.php?action=add&id=1 in der Adresszeile stehen (was ja an sich richtig ist), es passiert aber nichts mehr. Das habe ich nun bei allen GET Links festgellt.. entferne ich die jquery Mobile Dateien bzw. kommentiere sie aus, verschwindet der Fehler und alles funktioniert wie vorher!

    Ich möchte aber gerne jquery Mobile fürs Design Nutzen.. oder muss ich mich jetzt nach einer alternative umschauen?


  • #2
    Was sagt denn der Netzwerkverkehr im Firebug oder einem anderen Developer-Tool? Wird da ein neuer GET-Request gesendet?

    Kommentar


    • #3
      Zitat von Evolutio Beitrag anzeigen
      Was sagt denn der Netzwerkverkehr im Firebug oder einem anderen Developer-Tool? Wird da ein neuer GET-Request gesendet?
      Nur der Erste. Danach passiert bei einem Klick auf den gleichen Link nichts. Bei einem anderen Artikel funktioniert es, aber auch nur ein mal.

      edit: Wenn ich die Seite über F5 aktualisierefunktioniert es allerdings. (dann wird ja der Link mit dem GET noch einmal gesendet)

      Kommentar


      • #4
        Vermutlich kommt es mit dem jQuery Mobile Code zu einer Differenz, wodurch dein eigenes Skript dann abgebrochen wird. Deshalb kann nach einem Klick dann kein weiterer Code mehr ausgeführt werden.

        Wird dir eine Fehlermeldung in der Konsole deiner Entwicklertools angezeigt?

        Kommentar


        • #5
          Zitat von theskyliner Beitrag anzeigen
          Vermutlich kommt es mit dem jQuery Mobile Code zu einer Differenz, wodurch dein eigenes Skript dann abgebrochen wird. Deshalb kann nach einem Klick dann kein weiterer Code mehr ausgeführt werden.

          Wird dir eine Fehlermeldung in der Konsole deiner Entwicklertools angezeigt?
          Nein, wüsste jetzt auch nicht wo ich da direkt gucken sollte?
          Habe damit kaum Erfahrung..

          Ich mache das so:
          PHP-Code:
              $product_id $_GET[id];     //Produkt ID von URL
              
          $action     $_GET[action]; //Action von URL (delete oder add)

              //Erorr wenn Produkt ID in Datenbank nicht existiert
              
          if($product_id && !productExists($product_id$mysqli)) {
                  echo 
          "<span style='color: red;'>Fehler. Produkt-ID nicht vorhanden.</span>";
              }

              switch(
          $action) {    
              
                  case 
          "add":    //Menge + 1
                      
          $product_id++; 
                  break;
                  
                  case 
          "remove":    //Menge -1
                      
          $product_id--; 
                  break;
                   } 
          Der Link den ich anklicke um obiges auszuführen ist folgendermaßen aufgebaut
          PHP-Code:
          <a href=\"$_SERVER[PHP_SELF]?action=remove&id=$product_id\">
          <a href=\"
          $_SERVER[PHP_SELF]?action=add&id=$product_id\"> 
          Ohne jQuery funktioniert wie gesagt alles..

          Kommentar


          • #6
            PHP-Code:
                $product_id $_GET[id];     //Produkt ID von URL
                
            $action     $_GET[action]; //Action von URL (delete oder add)

                //Erorr wenn Produkt ID in Datenbank nicht existiert
                
            if($product_id && !productExists($product_id$mysqli)) {
                    echo 
            "<span style='color: red;'>Fehler. Produkt-ID nicht vorhanden.</span>";
                }

                switch(
            $action) {    
                
                    case 
            "add":    //Menge + 1
                        
            $product_id++; 
                    break;
                    
                    case 
            "remove":    //Menge -1
                        
            $product_id--; 
                    break;
                     } 
            das kann doch so gar nicht funktionieren. du zählst $product_id hoch. was du wahrscheinlich machen willst, ist die anzahl für die product_id hochzählen. also eher:

            PHP-Code:
                switch($action) {    
                
                    case 
            "add":    //Menge + 1
                        
            $amount[$product_id]++; 
                    break;
                    
                    case 
            "remove":    //Menge -1
                        
            $amount[$product_id]--; 
                    break;
                     } 
            grüße

            Kommentar

            Lädt...
            X