login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Jquery form versturen naar PHP (Opgelost)

Offline sanderrebry - 31/10/2013 09:33 (laatste wijziging 31/10/2013 10:48)
Avatar van sanderrebryLid Ik heb een jquery script die een form verstuurd naar een PHP pagina.
In het form zijn meerdere knoppen: bereken mijn prijs en bestellen.
Op de php pagina wil ik graag laten controleren op welke knop is gedrukt
(IF $_POST['bestellen']...IF $_POST['bereken'])... hoe kan ik dit doen?

  1. <script type="text/javascript">
  2. jQuery(document).ready(function(){
  3. jQuery('#but').click(function(){
  4. var querystring = jQuery('#form').serialize();
  5. jQuery('#txtHint').css('border','solid thin grey');
  6. jQuery('#txtHint').html(querystring);
  7. jQuery.ajax({
  8. type:"POST",
  9. url: "http://studiowebvision.be/demuynck/script-paginas/berekening",
  10. cache:false,
  11. data: querystring,
  12. success: function(data){
  13. jQuery("#txtHint").html(data);
  14. }
  15. });
  16. });
  17. });
  18. </script>

Iemand een idee?[/code]

8 antwoorden

Gesponsorde links
Offline marten - 31/10/2013 09:37
Avatar van marten Beheerder In principe worden alle POST variabelen meegestuurd. Echter alleen van de knop welke geklikt is wordt ook de value van meegestuurd. Dus je kan als volgt controleren:

  1. if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['bestellen']) && $_POST['bestellen'] != '') {
  2. // hier je code voor bestellen
  3. } elseif(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['bereken']) && $_POST['bereken'] != '') {
  4. // hier je code voor bereken
  5. }
Offline sanderrebry - 31/10/2013 10:03 (laatste wijziging 31/10/2013 10:47)
Avatar van sanderrebry Lid
  1. <html><head><script src="http://code.jquery.com/jquery-latest.min.js"
  2. type="text/javascript"></script><script type="text/javascript">
  3. $(document).ready(function(){
  4. $('#verstuur,#bereken').click(function(){
  5. var querystring = $('#form').serialize();
  6. $('#txtHint').css('border','solid thin grey');
  7. $('#txtHint').html(querystring);
  8.  
  9. $.ajax({
  10. type:"POST",
  11. url: "action.php",
  12. cache:false,
  13. data: querystring,
  14. success: function(data){
  15. $("#txtHint").html(data);
  16.  
  17. }
  18. });
  19. });
  20. });
  21.  
  22. </script></head>
  23. <body>
  24.  
  25. <form method='post' id='form' name='form'>
  26. <div style='margin:10px; padding:5px;' id='txtHint'></div>
  27. <input type='button' id='verstuur' name='bestellen' value='Bestellen' /><input type='button' id='bereken' name='bereken' value='Bestellen' />
  28. </form></body></html>




de action.php

  1. <?php
  2. if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['bestellen']) && $_POST['bestellen'] != '') {
  3.  
  4. echo "test";
  5. }
  6. elseif(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['bereken']) && $_POST['bereken'] != '') {
  7. // hier je code voor bereken
  8. echo "testeeee";
  9. }
  10. ?>


Dit werkt niet....
Offline Joel - 31/10/2013 10:08
Avatar van Joel Eigenaar Ever naast de kwestie, waarom zit je daar al je HTML & Javascript te echo-en? Je kan je PHP tag gerust even afsluiten, je JavaScript daar plaatsen zonder escapes "\", en terug je PHP starten wanneer nodig.

  1. <?php
  2. echo "blabla";
  3. ?>
  4. <b>blabla</b>
  5. <?php
  6. echo "en we zijn weer vertrokken";
  7. ?>


Dit zorgt er voor dat onder andere de color highlighting wordt toegepast op je code, zodat wij de code gemakkelijker kunnen parsen in ons hoofd.
Offline sanderrebry - 31/10/2013 10:43 (laatste wijziging 31/10/2013 10:43)
Avatar van sanderrebry Lid Werd aangepast...maar doe het nog steeds niet..
Offline Wijnand - 31/10/2013 10:52 (laatste wijziging 31/10/2013 10:52)
Avatar van Wijnand Moderator 1. Krijg je een JS foutmelding?

2. Probeer eens in action.php:

  1. <?php
  2. echo '<pre>';
  3. print_r($_POST);
  4. print_r($_GET);
  5. echo '</pre>';
  6. ?>


Wat krijg je dan te zien?
Offline marten - 31/10/2013 11:03
Avatar van marten Beheerder En zet in je form element POST als hoofdletters 
Offline sanderrebry - 31/10/2013 11:25
Avatar van sanderrebry Lid Nee werkt nog steeds niet.. ik krijg geen output van de pagina action.php... ik snap er niets van.. De bedoeling is wanneer ik op knop 1 druk dat in de pagina action if($_POST['knop1']) dan... als er op andere knop gedrukt is naar het andere ifje...
Offline Wijnand - 31/10/2013 11:40
Avatar van Wijnand Moderator Ik heb zelf even jouw code gepakt en getest en inderdaad werken al die dingen niet. Het probleem is dat die buttons (en ook submits) niet meegestuurd worden. Als je een ander input-veld erin zet wordt die wel meegestuurd, ook met jouw code! Die code was dus goed. Nu heb ik hem verder uitgebreid en nu zou het echt goed moeten werken (net getest).

Mijn code in totaal is dit:
  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
  4. <script type="text/javascript">
  5. $(document).ready(function(){
  6. $('#verstuur,#bereken').click(function(){
  7. var querystring = $('#form').serialize();
  8.  
  9. querystring += '&' + $(this).attr('name') + '=clicked';
  10. $('#txtHint').css('border','solid thin grey');
  11. $('#txtHint').html(querystring);
  12. $.ajax({
  13. type:"POST",
  14. url: "action.php",
  15. cache:false,
  16. data: querystring,
  17. success: function(data){
  18. $("#txtHint").html(data);
  19. }
  20. });
  21. });
  22. });
  23. </script>
  24. </head>
  25. <body>
  26. <form method='POST' id='form' name='form' action="">
  27. <div style='margin:10px; padding:5px;' id='txtHint'></div>
  28. <input type="hidden" name="test" id="test" value="jaja" />
  29. <input type='button' id='verstuur' name='bestellen' value='Bestellen' />
  30. <input type='button' id='bereken' name='bereken' value='Berekenen' />
  31. </form>
  32. </body>
  33. </html>
Bedankt door: marten, sanderrebry
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s