Hvad der er nemmest handler om præferencer og kendskab... F.eks kunne det være ganske lige til at skrive i JavaScript, men helvedes svært i PHP. Er det super tunge regneopgaver kan du med fordel bruge en server til det, og så er det PHP, Ruby, .NET eller noget helt andet server-side. Dog tror jeg ikke at der er så tunge regneopgaver at din egen maskine ikke vil kunne håndtere det i et snuptag og så vil JavaScript formentlig være fint nok til den slags opgaver.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title></title> </head> <body> <form name="calculator" id="calculator" method="post"> <input type="text" name="a" id="a" /> <input type="text" name="b" id="b" /> <input type="text" name="c" id="c" /> <select name="d" id="d"> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="phpBtn" id="phpBtn" value="Send to PHP" /> <input type="submit" name="jsBtn" id="jsBtn" value="Send to Javascript" /> </form> <?php //Check at siden er sendt som post, f.eks. fra en formula med method=post if($_POST) { //Hent hver værdi efter navn $a = (int) $_POST['a']; $b = (int) $_POST['b']; $c = (int) $_POST['c']; $d = (int) $_POST['d']; //Check at alle værdier er tal (int) if(is_int($a) && is_int($b) && is_int($c) && is_int($d)) { //Udregn værdien $formula = ($a + $b - $c) * $d; //Udskriv den echo $formula; } else { //Der er skrevet bogstaver eller andet der ikke er tal echo "Der opstod en fejl"; } } ?> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js"></script> <script type="text/javascript"> var jsBtnPressed = false; //Lyt efter hvornår formularen sendes $('calculator').onsubmit = function(){ //Hvis man har klikket på jsKnappen sendes formularen her og der fortages ikke mere på klienten //men man forsætter på serveren if(jsBtnPressed == false) return true; //Hent værdierne med prototype.js funktionen $F og konverter dem fra streng (tekst) til tal var a = parseInt($F('a')); var b = parseInt($F('b')); var c = parseInt($F('c')); var d = parseInt($F('d')); //Formularen var formula = (a + b - c)*d; //Vis formularen alert(formula); //Nulstil jsBtnPressed, så den kan reagere på phpBtn jsBtnPressed = false; //Annuller formularen så den ikke sendes til serveren return false; }; //Fordi jsBtn.onclick kaldes før calculator.onsubmit så kan man sætte en værdi som skal bruges i onsubmit funktionen $('jsBtn').onclick = function() { jsBtnPressed = true; } </script> </body> </html>
<form name="calculator" id="calculator" method="post"> <input type="text" name="a" id="a" /> <input type="text" name="b" id="b" /> <input type="text" name="c" id="c" /> <select name="d" id="d"> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit"value="Send" /> </form>
//Lyt efter hvornår formularen sendes $('calculator').onsubmit = function(){ //Hent værdierne med prototype.js funktionen $F og konverter dem fra streng (tekst) til tal var a = parseInt($F('a')); var b = parseInt($F('b')); var c = parseInt($F('c')); var d = parseInt($F('d')); //Formularen var formula = (a + b - c)*d; //Vis formularen alert(formula); //Nulstil jsBtnPressed, så den kan reagere på phpBtn jsBtnPressed = false; //Annuller formularen så den ikke sendes til serveren return false; };
//Check at siden er sendt som post, f.eks. fra en formula med method=post if($_POST) { //Hent hver værdi efter navn $a = (int) $_POST['a']; $b = (int) $_POST['b']; $c = (int) $_POST['c']; $d = (int) $_POST['d']; //Check at alle værdier er tal (int) if(is_int($a) && is_int($b) && is_int($c) && is_int($d)) { //Udregn værdien $formula = ($a + $b - $c) * $d; //Udskriv den echo $formula; } else { //Der er skrevet bogstaver eller andet der ikke er tal echo "Der opstod en fejl"; } }