Ankündigung

Einklappen
Keine Ankündigung bisher.

jquery ausgabe an php übergeben

Einklappen

Neue Werbung 2019

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

  • jquery ausgabe an php übergeben

    Hallo an alle irgendwie bekomme ich es einfach nicht hin das Ergebnis einer jquery "Abfrage" in eine PHP Variable zu schreiben.

    mit der POST Methode müsste ich doch an die gewünschte Http Adresse übermitteln damit ich meine (nun gesetzte) PHP Variable auslesen kann.

    Oder nicht?

    PHP-Code:
    <!doctype html>
    <script src="jquery-1.11.1.min.js"></script>
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">

    <html lang="de">
    <head>
      <meta charset="utf-8">
      <title>val demo</title>
      <style>
      p {
        color: red;
        margin: 4px;
        }

      b { 
        color: blue; 
        }
      </style>
    </head>

    <body>
        <p></p>
        <select id="auswahl">
          <option>Pflanzen</option>
          <option>Tiere</option>
        </select>

        <select id="auswahl2">
          <option>Nadelholz</option>
          <option>Laubbaum</option>
          <option selected="selected">Kakteen</option>
        </select>
        <?php
        
    echo "Inhalt der Variable auswahl: ";
        echo(
    $_POST["multipleValues"])."<br>";
        
        echo 
    "Inhalt der Variable auswahl2 :";
        echo(
    $_POST["auswahl2"]);
        
    ?>

    <script>

    function displayVals() {

      var singleValues = $( "#auswahl" ).val();

      var multipleValues = $( "#auswahl2" ).val() || [];

      $( "p" ).html( "<b>Auswahl:</b> " + singleValues 
      +    " <b>Auswahl2:</b> " + multipleValues//.join( ", " ) 
      );
      console.log(multipleValues);
      
        $.ajax({ 
          type: "POST", 
          url: "http://testsql/ajax2/test.php", 
          data: {multipleValues} 
        })  
    }

    $( "select" ).change( displayVals );

    displayVals();

    </script>

    </body>

    </html>


  • #2
    Hallöchen,

    hast du mal einen Blick in die Fehlerkonsole geworfen?

    Hinweis:
    Code:
    data: {multipleValues}
    Objekt-Literale - MDN

    Viele Grüße,
    lotti

    Kommentar


    • #3
      hallo danke erst mal für die schnelle Antwort.

      ich habe jetzt das hier probiert.
      ich würde sagen das könnte richtig sein

      PHP-Code:
      data: {multipleValues:auswahl2
      jedoch bekomme ich dann die folgende Fehlermeldung:

      too much recursion

      Kommentar


      • #4
        Hallöchen,

        Zitat von tutter Beitrag anzeigen
        too much recursion
        Das heißt, dass du dich im Kreis drehst. Vielleicht prüfst du deinen Code mal dahingehend.

        Viele Grüße,
        lotti

        Kommentar


        • #5
          Code:
          <!doctype html> 
          <script src="jquery-1.11.1.min.js"></script> 
          <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST"> 
          
          <html lang="de"> 
          <head>
          script- und form-Tags dürfen nicht außerhalb von head/body stehen. form nur innerhalb von body.

          auswahl2 ist bei deinem derzeitigem Code keine existierende Variable.

          Kommentar


          • #6
            PHP-Code:
            <!doctype html>
            <html lang="de">
            <head>
                
                <script src="jquery-1.11.1.min.js"></script>
                
              <meta charset="utf-8">
              <title>val demo</title>
              <style>
              p {
                color: red;
                margin: 4px;
                }

              b { 
                color: blue; 
                }
              </style>
            </head>

            <body>
                <!-- Form Tags immer nur in body -->
                <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">

                <p></p>
                <select id="auswahl">
                  <option>Pflanzen</option>
                  <option>Tiere</option>
                </select>

                <select id="auswahl2">
                  <option>Nadelholz</option>
                  <option>Laubbaum</option>
                  <option selected="selected">Kakteen</option>
                </select>
                <?php
                
            echo "Inhalt der Variable Multiple: ";
                echo(
            $_POST["multipleValues"])."<br>";
                
                echo 
            "Inhalt der Variable MultipleValues :";
                echo(
            $_POST["auswahl2"]);
                
            ?>

            <script>

            function displayVals() {

              var singleValues = $( "#auswahl" ).val();

              var multipleValues = $( "#auswahl2" ).val() || [];

              $( "p" ).html( "<b>Auswahl:</b> " + singleValues 
              +    " <b>Auswahl2:</b> " + multipleValues//.join( ", " ) 
              );
              console.log(multipleValues);
              
                $.ajax({ 
                  type: "POST", 
                  url: "http://server2008r2/ajax/test.php", 
                  data: {multipleValues:auswahl2}  
                  //data: {auswahl2:multipleValues}
                })  
            }

            $( "select" ).change( displayVals );

            displayVals();

            </script>

            </body>

            </html>
            Fehlermeldung : too much recursion bleibt leider

            Kommentar


            • #7
              Code:
              data: {multipleValues:auswahl2}
              auswahl2 ist nach wie vor keine existierende Variable.
              Meinst du vielleicht das hier?
              Code:
              data: {multipleValues: multipleValues}

              Kommentar


              • #8
                japp es scheint so als ob ich das suche *g*

                aber warum erhalte ich keinen wert mit
                PHP-Code:
                echo($_POST["multipleValues"])."<br>"
                über die Post Methode sollte ich doch unter der Bezeichnung multipleValues einen Wert bekommen oder nicht?

                Kommentar


                • #9
                  Bau dir Mal eine fail-Methode ein:
                  Code:
                  $.ajax({ 
                        type: "POST", 
                        url: "http://server2008r2/ajax/test.php", 
                        data: {...}  
                  }).fail(function(response)
                  {
                      console.log(response);
                      alert(respone);
                  });
                  Dann kannst du dir etwaige Fehlermeldungen anschauen.

                  Kommentar


                  • #10
                    shit finde den Fehler einfach nciht! selbst Firebug zeigt mir nix an

                    Kommentar


                    • #11
                      Dann adde auch noch eine done Methode nach dem gleichen Schema. Irgend etwas muss vom Server zurück kommen!

                      Kommentar


                      • #12
                        Ich habe das Skript aufgeräumt...
                        PHP-Code:
                        <!doctype html>
                        <html lang="de">
                        <head>
                            <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
                            
                            <meta charset="utf-8">
                            <title>val demo</title>
                            
                            <style>
                                p {
                                    color: red;
                                    margin: 4px;
                                }

                                b { 
                                    color: blue; 
                                }
                            </style>
                        </head>

                        <body>
                            <form action="" method="POST">
                                <select id="auswahl">
                                    <option>Pflanzen</option>
                                    <option>Tiere</option>
                                </select>

                                <select id="auswahl2">
                                    <option>Nadelholz</option>
                                    <option>Laubbaum</option>
                                    <option selected="selected">Kakteen</option>
                                </select>
                            </form>

                            <?php
                                var_dump
                        ($_POST);
                            
                        ?>

                            <script>
                                function displayVals() {

                                    var singleValues = $( "#auswahl" ).val();

                                    var multipleValues = $( "#auswahl2" ).val() || [];

                                    $( "p" ).html( "<b>Auswahl:</b> " + singleValues + " <b>Auswahl2:</b> " + multipleValues);
                                    
                                    console.log(multipleValues);

                                    $.ajax({ 
                                        type: "POST", 
                                        url: "http://localhost/test.php", // (URL zum Testen geaendert)
                                        data: {multipleValues: multipleValues}  
                                    }).done(function(data)
                                    {
                                        console.log(data);
                                    }).fail(function(data)
                                    {
                                        console.log(data);
                                    });
                                }

                                $( "select" ).change( displayVals );

                                displayVals();
                            </script>

                        </body>

                        </html>
                        ...und dabei auch das Form geschlossen, das wird bei dir nicht geschlossen.

                        Fazit: Es "funktioniert". done() wird aufgerufen und wenn man sich den Wert von data anschaut kann man sehen, das multipleValues übermittelt wurde.

                        Allerdings wird dem AJAX-Request als Response derzeit natürlich ein ganzes HTML-Dokument zurückgegeben.

                        Kommentar


                        • #13
                          danke danke danke! es "läuft" so weit! aber wie bekomme ich es denn nun hin das er nur den Wert der Variable multipleValues über $_Post an mich zurückgibt und warum liefert er den kompletten html Teil zur Zeit an mich zurück?

                          Kommentar


                          • #14
                            Die Ausgabe wird komplett zurückgeliefert - so ist das eben. Du musst also die Ausgabe modifizieren. Vielleicht solltest du einfach ein neues Script dafür nutzen das keinen HTML-Code enthält.

                            Kommentar


                            • #15
                              mist! ich will doch aber nur den einen wert *G* kann man nicht eine PHP Variable mit dem Wert überladen und die Seite einfach neu laden? damit ist doch der wert gesetzt und mir wäre geholfen.

                              Kommentar

                              Lädt...
                              X