login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met mijn Rekenmachine in PHP

Offline TheSpartan - 15/10/2009 22:01 (laatste wijziging 15/10/2009 22:01)
Avatar van TheSpartanNieuw lid Hallo,

Ik ben een beginner in PHP en heb een probleem 
Misschien is het een hele simpele oplossing maar ik kon niks vinden met google ofzo 

Nouwja
dit is mijn index.php waar je de getallen kan invoeren
  1. <?php
  2. $getal1 = '
  3.  
  4. <form action="reken_uit.php" method="get">
  5. <input type="text" name="getalvoor" onKeyPress="return numbersonly(this, event)" />
  6. <select name="plusmin">
  7. <option value="+">+</option>
  8. <option value="2">2</option>
  9. <option value="3">3</option>
  10. </select>
  11. <input type="text" name="getalachter" onKeyPress="return numbersonly(this, event)" />
  12. <input type="submit" />
  13. </form>
  14.  
  15.  
  16. </form>
  17.  
  18. ';;
  19. ?>
  20.  
  21. <?=$getal1?>
  22.  
  23. <SCRIPT TYPE="text/javascript">
  24. <!--
  25. // copyright 1999 Idocs, Inc. http://www.idocs.com
  26. // Distribute this script freely but keep this notice in place
  27. function numbersonly(myfield, e, dec)
  28. {
  29. var key;
  30. var keychar;
  31.  
  32. if (window.event)
  33. key = window.event.keyCode;
  34. else if (e)
  35. key = e.which;
  36. else
  37. return true;
  38. keychar = String.fromCharCode(key);
  39.  
  40. // control keys
  41. if ((key==null) || (key==0) || (key==8) ||
  42. (key==9) || (key==13) || (key==27) )
  43. return true;
  44.  
  45. // numbers
  46. else if ((("0123456789").indexOf(keychar) > -1))
  47. return true;
  48.  
  49. // decimal point jump
  50. else if (dec && (keychar == "."))
  51. {
  52. myfield.form.elements[dec].focus();
  53. return false;
  54. }
  55. else
  56. return false;
  57. }
  58.  
  59. //-->
  60. </SCRIPT>


En dit is mijn reken_uit.php waar het probleem zit!
  1. <?
  2. $gv = $_GET["getalvoor"];
  3. $ga = $_GET["getalachter"];
  4. $pm = $_GET["plusmin"];
  5.  
  6. $resultaat = $gv + $ga;
  7. echo $resultaat;
  8. ?>


En nou was het mijn bedoeling om $pm als +, -, :, x te laten werken en dat je kan kiezen of je + enzo kan doen...

Zou iemand me kunnen helpen zodat hij wel ziet Oow das plus.. xD

Alvast Bedankt,
--- TheSpartan!

4 antwoorden

Gesponsorde links
Offline Abbas - 15/10/2009 22:56 (laatste wijziging 15/10/2009 22:56)
Avatar van Abbas Gouden medaille

Crew .NET
Waarom in godsnaam steek je je hele form in een PHP-variabele om ze dan apart in short-tags weer te geven?!

Doe eens gewoon:

  1. <hier je form>
  2. <hier controls />
  3. </einde form>
  4.  
  5. <?php
  6.  
  7. //hier de PHP code voor de verwerking van je formulier
  8.  
  9. ?>

Voor het gebruik van die "$pm":

  1. switch ($pm)
  2. {
  3. case "+" : $result = $getalvoor + $getalachter; break;
  4. case "-" : $result = $getalvoor - $getalachter; break;
  5. case "*" : $result = $getalvoor * $getalachter; break;
  6. case "/" : $result = $getalvoor / $getalachter; break;
  7. }
  8.  
  9. echo $result;

Ik heb hier ooit eens een rekenmachine-script gepost, misschien kan je er wat mee: klik.

Succes! 
Offline BigBug - 15/10/2009 23:01
Avatar van BigBug PHP expert Je bent nu bezig in JavaScript met een gedeelte PHP. Ik zal je een kort voorbeeldje geven hoe je het ongeveer kunt oplossen:

  1. <form action="" method="post">
  2. <input type="text" name="veld1">
  3. <select name="operator">
  4. <option value="+">+</option>
  5. </select>
  6. <input type="text" name="veld2">
  7. <input type="submit" name="submit" value="Bereken!">
  8. </form>
  9.  
  10. <?php
  11. if($_SERVER['REQUEST_METHOD'] == 'POST')
  12. {
  13. if($_POST['operator'] == '+')
  14. {
  15. echo $_POST['veld1'] + $_POST['veld2'];
  16. }
  17. }
  18. ?>


Dit is natuurlijk hartstikke onveilig wat betreft de invoer, deze mag je zelf uitbreiden met bijvoorbeeld
PHP.net: is_numeric Ook heb ik hier alleen maar een voorbeeldje gemaakt voor '+'. De rest gaat ongeveer op dezelfde manier. Een tweede optie voeg je in php toe door elseif(); te gebruiken.

Succes in iedergeval!
Offline Abbas - 15/10/2009 23:19
Avatar van Abbas Gouden medaille

Crew .NET
@BigBug: het JavaScript-gedeelte is om te kijken of de invoer wel numeriek is, meer niet.. 
Offline Sparta - 16/10/2009 13:32
Avatar van Sparta Nieuw lid
titjes schreef:
@BigBug: het JavaScript-gedeelte is om te kijken of de invoer wel numeriek is, meer niet.. 


Inderdaad. En zoals ik al zei Ik ben beginner ;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s