Ankündigung

Einklappen
Keine Ankündigung bisher.

php mysql-abfrage und javascript

Einklappen

Neue Werbung 2019

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

  • php mysql-abfrage und javascript

    Hallo,

    habe hier eine Verständnisfrage zu Javascript.

    Ich muss auf einer Seite via Javascript-Funktion einen html-code generieren.
    Das klappt ohne Probleme.

    Ich muss jedoch auch eine mysql-abfrage erstellen um daraus dann wieder option-felder für die unter javascript generierte html-seite zu füllen.

    Jetzt habe ich in Beispielen gesehen das man angeblich dies in der javascript-funktion machen kann (also eine mysqlabfrage und php-code erstellen).
    Das begreife ich jedoch nicht ganz. Normal dürfte das doch gar nicht gehen oder?

    Wenn die javascript-funktion aufgerufen wird müssen doch die ganzen Daten aus der Datenbank schon vorliegen oder?


    Mein Problem ist.
    Ich bekomme auf einer Seite eine Tabelle angezeigt.
    in jeder Zeile habe ich einen anderen Wert (z.B. ID)
    mit diesem Wert muss ich pro Zeile eine Abfrage in einer mysqldb machen.

    Normal hätte ich nur die ID der jeweiligen Zeile an die javscript-funktion übergeben und dort eben die mysql-abfrage gemacht.
    das wäre für mich am einfachsten.

    Ich glaube jedoch das geht gar nicht.

    Muss ich nun pro Zeile eine mysql-abfrage erstellen und dann das Ergebnis in ein array einlesen um dieses dann an das Javascript übergeben zu können?

    Gruß Jürgen

  • #2
    Also um das direkt klarzustellen: Mit JavaScript direkt kannst du keine MySQL-Abfrage absetzen. Was du vermutlich suchst ist Ajax, womit du wiederum eine PHP-Datei aufrufst die dir die Abfrage macht und das Ergebnis jer JSON ausliefert, womit du dann in JavaScript weiterarbeiten kannst.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Zitat von tkausl Beitrag anzeigen
      Also um das direkt klarzustellen: Mit JavaScript direkt kannst du keine MySQL-Abfrage absetzen. Was du vermutlich suchst ist Ajax, womit du wiederum eine PHP-Datei aufrufst die dir die Abfrage macht und das Ergebnis jer JSON ausliefert, womit du dann in JavaScript weiterarbeiten kannst.
      hallo,
      gut dann habe ich es schon richtig verstanden.
      Es geht also nicht da ja javascript beim client läuft und nicht wie php und mysql beim server.
      Das umleiten von javascript auf ein php-script etc. ist mir dann doch zu umständlich.

      dann ist es für mich besser ich starte pro ausgegebener Zeile (erhalte ja auf der Ausgabeseite eine Art Tabelle ) eine mysql-abfrage und fülle mit der ein array was ich dann an die javascript funktion übergebe

      oder?

      Gruß Jürgen

      Kommentar


      • #4
        Ich versteh nicht ganz, warum JS die Seite aufbaut und nicht PHP?!
        [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

        Kommentar


        • #5
          Zitat von tkausl Beitrag anzeigen
          Ich versteh nicht ganz, warum JS die Seite aufbaut und nicht PHP?!
          Die Seite wird schon von php aufgebaut.
          Wenn die Seite dann beim Client ist hat dieser in einer tabelle die Möglichkeit pro Zeile eine Auswahl zu treffen.

          Anhand dieser Auswahl wird dann von javascript ein entsprechender html-code (ein Formular mit entsprechenden Formularfeldern) auf der gleichen seite dargestellt

          Ich wollte das so machen da ich einen Neuaufbau der gleichen seite vermeiden wollte.

          Das dann via javascript dargestellte formular ist jedoch dynamisch, es passt sich also genau der Auswahl an die man getroffen hat und füllt sich dann entsprechend der Auswahl mit Daten.

          Beispiel:
          in der Zeile 1 habe ich die ID 2.
          Anhand der ID 2 wird in dem Formular ein optionfeld mit test1, test2, test3 gefüllt
          in der zeile 2 habe ich dann z.B. die ID 5
          dann wird ein formular erstellt mit optionfeldern und den Werten Raum2, Raum3, Raum6

          usw.

          Gruß Jürgen

          Kommentar


          • #6
            dann ist es für mich besser ich starte pro ausgegebener Zeile (erhalte ja auf der Ausgabeseite eine Art Tabelle ) eine mysql-abfrage und fülle mit der ein array was ich dann an die javascript funktion übergebe

            oder?

            Gruß Jürgen
            Hallo Jürgen,

            du kannst mit Javascript keine mysql abfragen machen.

            du benötigst dazu PHP , da dies serverseitig ist ,
            weiters falls du dann mit den Daten die du von der Query zurückbekommst einen HTML-Code aufbauen willst kannst du das locker durch PHP,
            außer du willst die Daten die du zurückbekommen hast, erst nach einer gewissen Interaktion vom Benutzer anzeigen lassen dann musst du sie von PHP in Javascript speichern:

            PHP-Code:
            <?php echo('var jArray = new Array();');
                            foreach(
            $abteilung as $key => $value){
                                if(
            is_int($key)){
                                    echo(
            'jArray['$key .'] = \''$value .'\';');
                                    }else{
                                    echo(
            'jArray[\''$key .'\'] = \''$value .'\';');
                                }
                            }
                        
            ?>
            hoffe ich konnte dir helfen.

            Kommentar


            • #7
              Zitat von selfmade02 Beitrag anzeigen
              Ich wollte das so machen da ich einen Neuaufbau der gleichen seite vermeiden wollte.
              Na dann verwendet du doch schon (wahrscheinlich) Ajax. Also wo liegt dein Problem genau? Liefert dir die Ajax geladene Datei falsche Werte oder gehts gar nicht?

              JQuery bietet ein geniales Ajaxsystem. Da mal geschaut?

              Wenn du wie ich kein JQueryfan bist, schreib mir eine PN.

              Aber Jquery macht das gut. POST, GET und REQUEST werden unterstützt.

              Kommentar


              • #8
                Zitat von Labrar Beitrag anzeigen
                POST, GET und REQUEST werden unterstützt.
                Und was ist bitte REQUEST für eine Art von HTTP-Request? Noch nie davon gehört.
                [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                Kommentar


                • #9
                  Zitat von tkausl Beitrag anzeigen
                  Und was ist bitte REQUEST für eine Art von HTTP-Request? Noch nie davon gehört.
                  vllt. meint er den Head-Request

                  Kommentar


                  • #10
                    Zitat von Blackscr33n Beitrag anzeigen
                    Hallo Jürgen,



                    PHP-Code:
                    <?php echo('var jArray = new Array();');
                                    foreach(
                    $abteilung as $key => $value){
                                        if(
                    is_int($key)){
                                            echo(
                    'jArray['$key .'] = \''$value .'\';');
                                            }else{
                                            echo(
                    'jArray[\''$key .'\'] = \''$value .'\';');
                                        }
                                    }
                                
                    ?>
                    hoffe ich konnte dir helfen.
                    ja so mache ich es das gerade auch.
                    Ich hole mir zuvor schon also noch auf Serverseite via php und mysql die Daten und ziehe mir diese in ein array.
                    Code:
                    <?php
                    $mitdemgefuelltenarray = holemirallesausdermysqldb($mitdemwert, $unddemwert);
                    ?>
                    Das array übergebe ich dann in der javascript onclick=gehezurjavascriptfunktion('$mitdemgefuellt enarray','$undanderenwerten')

                    Danke für die Tipps

                    Gruß Jürgen

                    Kommentar


                    • #11
                      Zitat von Blackscr33n Beitrag anzeigen
                      PHP-Code:
                      <?php echo('var jArray = new Array();');
                                      foreach(
                      $abteilung as $key => $value){
                                          if(
                      is_int($key)){
                                              echo(
                      'jArray['$key .'] = \''$value .'\';');
                                              }else{
                                              echo(
                      'jArray[\''$key .'\'] = \''$value .'\';');
                                          }
                                      }
                                  
                      ?>
                      Assoziative Arrays kennt Javascript nicht. Was Du da machst ist falsch, denn was Du setzt sind Objektproperties.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        Das umleiten von javascript auf ein php-script etc. ist mir dann doch zu umständlich.
                        Nö, es handelt sich auch nicht um eine Umleitung per Definition. Und eigentlich ist der Vorgang heutzutage recht bequem lösbar.
                        Normal hätte ich nur die ID der jeweiligen Zeile an die javscript-funktion übergeben und dort eben die mysql-abfrage gemacht.
                        das wäre für mich am einfachsten.
                        Ein bischen umgedacht und schon passt es:

                        1. Binde jQuery ein.
                        2. Nutze bspw. $.post() und übergib die ID der jeweiligen Zeile an das Serverscript.
                        3. Verarbeite den Response im DOM, wo immer Du willst!
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Zitat von Arne Drews Beitrag anzeigen
                          Nö, es handelt sich auch nicht um eine Umleitung per Definition. Und eigentlich ist der Vorgang heutzutage recht bequem lösbar.
                          Ein bischen umgedacht und schon passt es:

                          1. Binde jQuery ein.
                          2. Nutze bspw. $.post() und übergib die ID der jeweiligen Zeile an das Serverscript.
                          3. Verarbeite den Response im DOM, wo immer Du willst!
                          das sagt mir alles nicht viel.

                          ich versuche es mal anhand des codes zu beschreiben wie ich es gerade probierte


                          Hier wie es aussieht
                          PHP-Code:
                          echo '<input type="radio" name="Settings" value=""
                                                                  onclick=getformfunction('
                          .$ergebnis.')></input>'
                          dabei ist $ergebnis das array was wie folgt aussieht

                          Array
                          (
                          [1] => Array
                          (
                          [W_Container_Type_Id] => 3
                          [W_Container_Id] => 17
                          [Container_Nr] => 1
                          [W_Container_Type_Name] => Aktiver Süßwasserbehälter
                          )

                          [2] => Array
                          (
                          [W_Container_Type_Id] => 3
                          [W_Container_Id] => 18
                          [Container_Nr] => 2
                          [W_Container_Type_Name] => Aktiver Süßwasserbehälter
                          )


                          dann kommt die javascript funktion

                          <script type="text/javascript" language="javascript" >
                          function getformfunction(ergebnis)
                          {
                          var ArrayLaenge = ergebnis.length;
                          for (i=0; i< ArrayLaenge; i++)
                          {
                          document.write(ergebnis[i] + " ");
                          }
                          </script>


                          nun habe ich erfahren das javascript mit dem PHP-array nichts anfangen kann.
                          ich dachte wenn ich auf der Serverseite das Array erstelle und dann in die onclick-variable übergebe, wäre es dann schon fertig als array beim client der dann die javascript funktion bei click aufruft
                          und das geht wohl nicht

                          kann ich das php array in einen string packen, dann bei onclick an javascript übergeben und dort in der javascript funktion den string wieder zerlegen?
                          gibts dazu ein Beispiel wenn es so gehen sollte?

                          Gruß Jürgen

                          Kommentar


                          • #14
                            kann ich das php array in einen string packen, dann bei onclick an javascript übergeben und dort in der javascript funktion den string wieder zerlegen?
                            Nein, wie soll das gehen?! Das PHP-Array existiert in seiner Form nicht mehr, sobald es den Quelltext an den Browser gesendet hat!
                            Worauf willst Du bei onclick dann noch zugreifen?!

                            das sagt mir alles nicht viel.
                            Dann versuche Dich da einzulesen und lerne es.
                            Dir wurde nun hinreichend klar gemacht, daß es so nicht funktioniert, wie Du es vor hast. Also heißt es umdenken oder abdanken!
                            Dein Nick sollte doch darauf schliessen lassen, daß Du lernbereit bist?!

                            Für weitere offene Fragen: http://www.php.de/php-einsteiger/489...rundlagen.html
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Zitat von Arne Drews Beitrag anzeigen
                              Nein, wie soll das gehen?! Das PHP-Array existiert in seiner Form nicht mehr, sobald es den Quelltext an den Browser gesendet hat!
                              Worauf willst Du bei onclick dann noch zugreifen?!
                              wieso nicht?
                              ich füge das Array einfach kommagetrennt zu einem ganzen String zusammen der dann so aussieht

                              echo $Ergebnis;
                              Ausgabe:
                              "1,2,4,5,Aktiver Container"
                              da ich dann an das onclick= blabla($Ergebnis, usw)
                              diese Variable nicht mehr als PHP-array übergeben muss hoffte ich das man den string übergeben kann

                              Aktuell übergebe ich ja auch schon an die javascript-funktion variablen die ich mir zuvor durch php gefüllt habe.
                              Beim Client kommt also dann schon das Ergebnis an.
                              In der Javascript-funktion bekomme ich so dann mehrere strings und keine arrays mehr. Diesen string der ja kommas enthält müsste ich doch dann im javascript wieder zerlegen können

                              oder ?


                              Gruß Jürgen

                              Kommentar

                              Lädt...
                              X