所以我想创建一个简单的计算器。我有一个表格涉及几个"下拉选项/选择"框和提交按钮。为了测试,您选择一个选项并点击提交按钮。我有我独立的php表单(testform.php)基本上回显了所选的选项。但是,当您点击提交时,会将您带到testform.php页面,这是显示所选选项的位置。我的目标是让用户选择一些选项,点击提交,然后在SAME页面上显示一些内容。例如,选择了两个选项A和B(A是" 4" B是" 8")并且在形式中,我有一个等于A + B的新变量我希望新的变量(A + B的结果)显示在原始页面上。
这是一些代码。
在我的index.php文件中(即我的表单)
<form action = 'testform.php' method = 'post' class = 'formcontainer'>
<select name="A">
<option value="4">4</option>
</select>
<select name="B">
<option value="8">8</option>
</select>
<input type="submit" name="submit" value="Calculate" />
</form>
这是我单独的php表单
<?php
$A = $_POST["A"];
$B = $_POST["B"];
$result = $A + $B;
?>
基本上我想做的是在索引页面上显示变量$ result。我想目前,我的索引文件中没有php,只是表单。将我的php表单放在主索引文件中会更容易吗?同样,这只是为了让事情变得简单......我的实际php比简单的添加问题复杂一点。谢谢!
答案 0 :(得分:1)
为了在同一页面上显示结果,您可以将其全部放在一个文件中,并忽略testform.php
中的action
,并对POST数组使用isset()
,您决定添加要求用户选择号码的选项。即:<option value="">Please make a selection</option>
。
action = ''
与“self”相同,如“same file”。旁注:你从未关闭过你的选择,你现在的代码会在现在失败。
<form action = '' method = 'post' class = 'formcontainer'>
<select name="A">
<option value="4">4</option>
</select>
<select name="B">
<option value="8">8</option>
</select>
<input type="submit" name="submit" value="Calculate" />
</form>
<?php
if(isset($_POST["submit"])){
if(isset($_POST["A"]) && isset($_POST["B"])){
$A = $_POST["A"];
$B = $_POST["B"];
echo $result = $A + $B;
}
}
?>
你也可以使用Ajax(正如我在评论中提到的那样),但这超出了这个问题的范围。
旁注:你可能已经注意到echo $result = $A + $B;
中的回声。这实际上是有效的语法。
或者,您可以执行以下操作,但这只是更多的代码。
$A = $_POST["A"];
$B = $_POST["B"];
$result = $A + $B;
echo $result;
<强>脚注:强>
如果不对POST数组使用isset()
,并在同一文件中使用整个代码(HTML表单和PHP),则会触发未定义的索引通知。
答案 1 :(得分:0)
我有办法这样做,我不知道它是否是最好的,但现在就是。
index.html文件:(我修改了一下)
<form action = 'testform.php' method = 'post' class = 'formcontainer'>
<select name="A">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select name="B">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<input type="submit" name="submit" value="Calculate" />
</form>
testform.php文件:(也修改了一下)
<?php
$A = $_POST["A"];
$B = $_POST["B"];
$result = $A + $B;
include 'index.php';
print "<p>" . $result . "</p>";
?>