Hoi,

Graag zou ik hier hulp willen vragen met het vermenigvuldigen van 2 tekstvakken en de uitkomst te laten zien in een 3de tekstvak.

De personen in kwestie zouden een hoogte en een breedte moeten opgeven en dan zou het totaal automatich moeten uitgerekend worden maar na verschillende mislukte pogingen is het me nog steeds niet gelukt.

Alvast bedank.
<?php
$eerste_tekstvariabele = '3';
$tweede_tekstvariabele = '4';
$derde_tekstvariabele = intval($eerste_tekstvariabele) + intval($tweede_tekstvariabele);
print 'Totaal: ' . $derde_tekstvariabele;
?>
Met vaste variabele lukt me dat maar de eerste en tweede tekstvariabele zijn altijd verschillend en daar zit de moeilijkheid.
<?php
// init
define('EOL', "\n");
$totaal = 0;
$var1 = 0; if (isset($_POST['var1'])) $var1 = intval($_POST['var1']);
$var2 = 0; if (isset($_POST['var2'])) $var2 = intval($_POST['var2']);
$totaal = $var1 + $var2;
// formuliertje
print '<!DOCYTYPE html>' . EOL;
print '<html>' . EOL;
print '  <head>' . EOL;
print '    <title>Variabele tekstvelden optellen</title>' . EOL;
print '  </head>' . EOL;
print '  <body>' . EOL;
print '    <form action="?" method="post">' . EOL;
print '      <label for="var1">Eerste variabele: </label>' . EOL;
print '      <input id="var1" name="var1" type="text" value="' . $var1 . '" />' . EOL;
print '      <br/>' . EOL;
print '      <label for="var2">Tweede variabele: </label>' . EOL;
print '      <input id="var2" name="var2" type="text" value="' . $var2 . '" />' . EOL;
print '      <br/>' . EOL;
print '      Totaal: ' . $totaal . EOL;
print '    </form>' . EOL;
print '  </body>' . EOL;
print '</html>' . EOL;
?>
@An tje

Zet dan meteen neer dat je ook kan kiezen of je wilt delen, optellen, vermenigvuldigen en etc...
Het is gelukt!! Bedankt allemaal.
Moest het een calculator worden?
<?php
// init
define('EOL', "\n");
$vars = array('var1', 'var2', 'totaal');
foreach ($vars as $v) $$v = 0;
if (isset($_POST['var1'])) $var1 = $_POST['var1'];
if (isset($_POST['var2'])) $var2 = $_POST['var2'];
foreach ($vars as $v) $$v = floatval(str_replace(',', '.', $$v));
$ops = array('*' => 'X', '/' => '/', '+' => '+', '-' => '-', '%' => 'mod', '**' => 'exp', /* PHP 5.6+ */);
$op = '+'; $totaal = '#Foutje'; $foutje = '';
if (isset($_POST['op']) && array_key_exists($_POST['op'], $ops)) $op = $_POST['op'];
if ($var2 == 0 && ($op == '/' || $op == '%')) $totaal = 'Delen door nul is flauwekul.';
else {
  try {
    $rc = @eval('$totaal = $var1 ' . $op . ' $var2;');
    if ($rc === false) throw new Exception('PHP 5.6+ is hiervoor nodig.');
  }
  catch (\Exception $e) {$foutje = 'window.alert("' . $e->getMessage() . '")';}
  finally {foreach ($vars as $v) $$v = str_replace('.', ',', $$v);}
}
// formuliertje
print '<!DOCYTYPE html>' . EOL;
print '<html>' . EOL;
print '  <head>' . EOL;
print '    <title>Variabele tekstvelden optellen</title>' . EOL;
print '    <style type="text/css">' . EOL;
print '      * {font-size:12pt; font-family:monospace;}' . EOL;
print '      body {margin:3em;}' . EOL;
print '      select, input {border-radius:0.5em;outline:0;' . EOL;
print '        width:15em; text-align:right; box-shadow:none; margin:0.33em; border:1px solid lightgrey; padding:0.4em 0.6em;}' . EOL;
print '      select {width:4em; text-align:left;}' . EOL;
print '      select:focus,input:focus {animation: foc 0.5s ease;box-shadow:0 0 0.2em rgba(0,127,0,1);background:#F3FFF3;}' . EOL;
print '      @keyframes foc{0%{box-shadow:0 0 2em rgba(0,0,255,0);} 100%{box-shadow:0 0 0.2em rgba(0,127,0,1);}}' . EOL;
print '      option{background:white;}' . EOL;
print '      option[selected]{background:lightgreen;}' . EOL;
print '      input[readonly]{background:#F3F3F3;}' . EOL;
print '      hr {display:block; height:0.15em; border:0; padding:0; margin:0.5em 0; background:grey; width:21em; }' . EOL;
print '    </style>' . EOL;
print '  </head>' . EOL;
print '  <body>' . EOL;
print '    <script type="text/javascript">' . EOL;
print '      ' . $foutje . EOL;
print '    </script>' . EOL;
print '    <form action="" method="post">' . EOL;
print '      <input name="var1" type="text" value="' . $var1 . '" onchange="form.submit();" />' . EOL;
print '      <br/>' . EOL;
print '      <input name="var2" type="text" value="' . $var2 . '" onchange="form.submit();" />' . EOL;
print '      <select id="op" name="op" onchange="form.submit();">' . EOL;
foreach($ops as $k => $v) {
  $s = ''; if ($op == $k) $s = 'selected="selected"';
  print '        <option value="' . $k . '"' . $s .'>' . $v . '</option>' . EOL;
}
print '      </select>' . EOL;
print '      <hr/>' . EOL;
print '      <input type="text" readonly="readonly" value="' . $totaal . '" />' . EOL;
print '    </form>' . EOL;
print '  </body>' . EOL;
print '</html>' . EOL;
exit(0);
?>
Dat is een manier om HTML compleet onleesbaar te maken, I suppose.
Thomas van den Heuvel op 07/10/2015 12:07:09

Dat is een manier om HTML compleet onleesbaar te maken, I suppose.


Zou leuk zijn dat als je het anders ziet, je dan ook met de naar in jouw ogen juiste oplossing komt?

Alleen maar commentaar geven op anderen helpt het probleem niet op te lossen?

Reageren