简体   繁体   中英

Get data and submit without refreshing page

 ////////////////// Jquery AJAX submit zonder te refreshen ///////////////////////////

           function submitdata() {
              var vakken  = document.getElementById("vakken").value;
               var dataString = 'vakken=' + vakken;

                   // AJAX
                   $.ajax({
                       type: "POST",
                       url: "prototype.php",
                       data: dataString,
                       cache: false,
                       success: function(html) {
                           alert(html);
                       }

                   });

               return false;

           }

what is wrong here? //////////////////////////////////////////////////////////////////////////////////

<form id="selector" action="prototype.php" method="post" enctype="multipart/form-data">
                        <select name="vakken">

                            <option value="DED">VAK: DED  </option>
                            <option value="UXU">VAK: UXU  </option>
                            <option value="SCO">VAK: SCO  </option>
                            <option value="PO">VAK: PO  </option>
     </select>
                        <button type="button" onClick="submitdata();">Submitii</button>
                    </form>
                </div>

                <div id="vlakkencontainer">
                    <?php
    // recieve data 
                    if(isset($_POST['vakken'])) {
                        $vak = $_POST['vakken'];
                        echo $vak;
                        $sqldedquery = mysqli_query($con, "SELECT * FROM `opdracht` WHERE `vak` = '" . $vak . "'");
                        $vlakid = 0;
                        while ($row = mysqli_fetch_array($sqldedquery)) {

                            $afbeelding = $row['afbeeldingnaam'];
                            $pdf = $row['pdfnaam'];
                            $naamopdracht = $row['opdrachtnaam'];

                           echo '<a id="vakhover" href="../../../db/' . "$pdf" . '"><div class="vlak" id=' . "$vlakid++" . '>
            <img src="../../../db/' . $afbeelding . '"><div id="naamopdracht">' . $naamopdracht . '</div>
        </div></a>';
                        } 
                    } ?> 

how can i get this data out of my db without refresh the page. i tried ajax but i could not get it to work!

you do not have an element with id = vakken, replace your select from

<select name="vakken">

to

<select name="vakken" id="vakken">

it works fine

<form id="selector" action="prototype.php" method="post" enctype="multipart/form-data">
    <select name="vakken" id="vakken">

        <option value="DED">VAK: DED  </option>
        <option value="UXU">VAK: UXU  </option>
        <option value="SCO">VAK: SCO  </option>
        <option value="PO">VAK: PO  </option>
     </select>
    <button type="button" onClick="submitdata();">Submitii</button>
</form>

<script>

           function submitdata() {
              var vakken  = document.getElementById("vakken").value;
              alert(vakken);
           }
</script>

after that PHP script can process vakken parameter...

I don't see any id "vakken", you have to change :

var vakken  = document.getElementById("vakken").value;

To :

var vakken = document.getElementsByName("vakken").value;

Problem here is that you are returning HTML without specifying a data-type for your ajax call, which in my experience defaults to JSON which your response is clearly not. It helps to have a failure callback handler to check if what you are doing is wrong too.

Check if adding this to your AJAX function fixes things

         $.ajax({
                   type: "POST",
                   url: "prototype.php",
                   data: dataString,
                   cache: false,
                   //This is new
                   dataType: "html",
                   success: function(html) {
                       alert(html);
                   }
               }).fail(function(){alert("Something has gone terribly wrong")});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM