我正在填写表格,但工作不正常。这是代码:
<?php
$output = '';
$display_form = True;
//echo $display_form;
//Once the form is submitted it should be hidden so first I set $display_form to false at line 19.
//Then I do all the logic to get the propper result at line 21-39. And echo the result at line 40-43.
if(isset($_POST['submit'])){
$display_form = False;
if (!is_numeric($_POST['mark1'])) {
$mark1 = $_POST['mark1'];
$output = 'De invoer van Getal 1 was foutief: '.$mark1;
}if(!is_numeric($_POST['mark2'])) {
$mark2 = $_POST['mark2'];
$output.= '<br>De invoer van Getal 2 was foutief '.$mark2;
}elseif(is_numeric($_POST['mark1']) && is_numeric($_POST['mark2'])){
$mark1 = str_replace(',', '.', $_POST['mark1']);
$mark2 = str_replace(',', '.', $_POST['mark2']);
$result = $mark1+$mark2;
$mark1_2 = str_replace('.', ',', $mark1);
$mark2_2 = str_replace('.', ',', $mark2);
$result_2 = str_replace('.', ',', $result);
$output = $mark1_2.' + '.$mark2_2. ' = '.$result_2.'<br>';
}?>
<h1>
<?php echo $output ?>
</h1>
<button type="reset" value="Opnieuw">Opnieuw</button>
<?php
}
//If the form isn't submitted $display_form is True so it should show this HTML
if($display_form){ ?>
<h1>Optel rekenmachine</h1>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Getal 1: <input type="text" name="mark1"><br>
Getal 2: <input type="text" name="mark2"><br>
<button type="submit" value="Optellen!"class="form">Optellen!</button><button type="reset" value="Leegmaken">Leegmaken</button>
</form>
<?php }
?>
我希望它显示表单,但是一旦提交,我希望表单隐藏所有显示结果。显示结果时,将显示一个“ Opnieuw”按钮。单击后,表单应再次显示,带有opnieuw按钮的结果应隐藏。但是现在,表单不提供结果也不隐藏,而只是在提交后重置。
答案 0 :(得分:0)
您的提交按钮没有设置名称属性,因此不会发送任何您可以在$ _POST中检查的内容。因此,将name="submit"
添加到该按钮:
<button type="submit" name="submit" value="Optellen!" class="form">
要使“ Opnieuw”按钮做一些事情,以某种形式将其包装到同一脚本(没有任何值)
答案 1 :(得分:0)
您可以简单地使用$ _POST数组实现此目的,该数组仅在发送数据时存在。
if (isset($_POST)) {
//do your stuff with the data from the form so here basically echo $output
else {
//echo your form
}
无需使用“ $ display_form”变量。
您也不需要为提交的输入设置名称,但是由于为每个输入设置名称是一种好习惯,因此我建议您还是必须这样做。 / p>