Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] DB Insert mittels JavaScript

Einklappen

Neue Werbung 2019

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

  • [Erledigt] DB Insert mittels JavaScript

    Hallo zusammen,
    ich habe eine kleines Problem (wie wohl die meisten hier)!
    Ich habe eine Seite auf der ein Produkt angezeigt wird (alles PHP basiert). Hier habe ich nun einen neuen Button eingefügt, der dieses Produkt zu den Favoriten des Kunden hinzufügen soll - allerdings OHNE die Seite neu zu laden. D.h. ich muss von PHP weg zu JavaScript. Allerdings stehe ich jetzt vor dem Problem, das ich nicht weiss, wie ich die Daten in die DB schreiben kann da JS ja auf Clientseite läuft und keinen Zugriff auf die DB hat.
    Habe zwar jetzt schon einiges gelesen, aber wirklkich schlauer bin ich nicht geworden. Und mit Ajax wollte ich mich jetzt nicht auch noch rumschlagen. das muss doch irgendwie gehen, oder?

    Ich danke Euch vorab für Eure Hilfe.

    Greets
    DerEine80

  • #2
    Zitat von DerEine80 Beitrag anzeigen
    Habe zwar jetzt schon einiges gelesen, aber wirklkich schlauer bin ich nicht geworden. Und mit Ajax wollte ich mich jetzt nicht auch noch rumschlagen. das muss doch irgendwie gehen, oder?
    Ja. Mit Ajax.


    Per JavaScript/Ajax schickst du einen Request an deinen Server. Dort wird eine PHP-Datei aufgerufen die dann letztendlich das gewünschte in die Datenbank schreibt.

    Kommentar


    • #3
      Hmmm...ok. Wie sähe das dann aus? Habe nämlich sogarkeinen Plan von Ajax.
      Die PHP-Datei ist dann eine neue Datei die lediglich die Daten über den Request erhält und dann in die DB schreibt?

      Vielen Dank schonmal für die schnelle Antwort. Auch wenn ich bei der Realisierung noch erhebliche Probleme habe...


      Gruß
      DerEine80

      Kommentar


      • #4
        Hallo,

        bitte lies dir dies einmal durch: Was ist PHP - PHP.de Wiki

        Kommentar


        • #5
          Zitat von Manko10 Beitrag anzeigen
          Hallo,

          bitte lies dir dies einmal durch: Was ist PHP - PHP.de Wiki

          Vielen Dank für den Link. Habe ich mir schon reingezogen. Allerdings war nichts wirklich neues/wissenswertes dabei. Mir ist schon bewusst das PHP eine rein server-seitige Sache ist, und man für Aktionen des Users auf der Clientseite andere Sprachen zur Verfügung hat. Mir geht es halt nur um das Verständnis/Anleitung wie ich zu einer Lösung für mein Problem komme. Ich weiss, das hier ist keine "Ich schreib Dir dein Programm"-Seite, aber ich wäre wirklich für einen Ansatz dankbar.

          Greets
          DerEine80

          Kommentar


          • #6
            Wie Ajax funktioniert findest Du in jedem entsprechenden Tutorial auf der ersten Seit. Wieso sollte das jetzt hier einer nochmal schreiben sollen.

            Kommentar


            • #7
              Alles kalr. Vielen Dank für die netten Verweise zur eigenen Recherche. Aber wie ich bereits in meinem ersten Thread geschrieben habe, habe ich schon diverse Seiten durchforstet, aber ohne pos. Ergebnis. Daher habe ich mich, in der HOffnung Hifle zu bekommen, an dieses Forum gewand. Naja, die Zeit hätte ich dann wohl auch besser investieren können.

              Kommentar


              • #8
                Wo liegt denn jetzt konkret dein Problem? Im senden des Requests?

                Alles was schwierig und nervig ist kannst du dir sparen wenn du dir ein Framework wie Mootools, Prototype oder jQuery dazunimmst.

                Ein Ajax-Request ist dann oft ein Einzeiler:
                Code:
                //Prototype:
                new Ajax.Request('test.php');
                //jQuery:
                $.post("test.php", { product_id: "10"} );
                Alles was du jetzt noch brauchst ist ein PHP-Script, dass die geposteten Werte entgegennimmt und wie gehabt mit der Datenbank arbeitet. Und vllt. noch einen onclick-Handler...

                Es gibt also ungefähr garkeinen Grund pampig zu werden

                Kommentar


                • #9
                  Hi, sorry für die "pampige" Antwort! Hast ja recht. Bin auch ein Stückchen weiter gekommen.
                  Allerdings noch immer mit einem Problem. Wenn ich es in 2 unabhängigen Dateien ausführe passt es. Wenn ich es aber dann in die entsprechenden Projektdateien einfüge, funktioniert es nicht. Weiss aber nicht warum. Pfadangaben stimmen soweit.

                  Hier einmal die Schnipsel:
                  die Aufrufende PHP-Datei
                  Code:
                  <script type="text/javascript" src="www/prototype.js"></script>
                          <script>
                  
                              function sendRequest() {
                                  new Ajax.Request("test2.php", 
                                      { 
                                          method: 'post', 
                                          postBody: 'name='+ $F('name'),
                                          onComplete: showResponse 
                                      });
                                  }
                                      
                              function showResponse(req){
                                  $('show').innerHTML= req.responseText;
                              }
                              
                  </script>
                  und hier die Datei zur Bearbeitung
                  PHP-Code:
                  if($_POST["name"] == ""){
                      echo 
                  "name is empty";
                      }
                  else{
                      
                  $insert mysql_query("INSERT INTO vod_customer_favorites(customer_id, hotmovie_id) VALUES ( ".$_POST["name"].", 4711)");
                      echo 
                  "you typed ".$_POST["name"];
                      } 
                  und hier dann vlt. noch der Aufruf der Funktion
                  PHP-Code:
                  echo tep_image(DIR_WS_LANGUAGES.$language.'/images/buttons/button_vod_favorites.gif').'</td><td class="main" align="left"><a href="javascript:sendRequest()">' .TEXT_ADD_PRODUCT_TO_FAVORITES '</a></td>'
                  Vielen Dank weiterhin für Eure Hilfe.

                  Gruß
                  DerEine80

                  Kommentar


                  • #10
                    So, habe dann mal eine andere Funktion verwendet.
                    Code:
                    <script language="javascript">
                    function sendRequest(customer_id, hotmovie_id, hotmovie_title)
                                    {
                                        var sql_delete = "DELETE FROM vod_customer_favorites WHERE customer_id = " + customer_id + " AND hotmovie_id =" + hotmovie_id ;
                                        url='vod_product_info_insert_favorite.php';
                                        http_request = new XMLHttpRequest();
                                        http_request.open('POST', url, true);
                                        http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                        http_request.send("sql_delete=" + sql_delete);
                                        
                                        alert("Filme wurde aus Ihren Favoriten gelöscht!");
                                    };
                                    
                    </script>
                    Aufruf der Funktion
                    PHP-Code:
                    echo "<a href="javascript:sendRequest('.$customer_id. ','. $vod_favorite_array[$j]['id']. ')">'. TEXT_DELETE_PRODUCT_FROM_FAVORITES . '</a>'; 
                    und es passt...
                    dank euch für eure anregungen.

                    gruß
                    DerEine80

                    Kommentar


                    • #11
                      PHP-Code:
                      echo "<a href="javascript:sendRequest('.$customer_id. ','. $vod_favorite_array[$j]['id']. ')">'. TEXT_DELETE_PRODUCT_FROM_FAVORITES . '</a>'; 
                      Okay, schön, dass wir dir helfen konnten.

                      Bis zum nächsten Parser-Fehler!

                      Kommentar


                      • #12
                        Bis zum nächsten Parser-Fehler!
                        LOL. Mein Editor macht da noch viel schönere Farben...

                        Kommentar


                        • #13
                          Welchen Editor benutzt du denn?

                          Kommentar


                          • #14
                            Entscheidend ist das Syntaxhighlighting...

                            Kommentar

                            Lädt...
                            X