2016-02-04 52 views
-1

所以我想创建一个简单的计算器。我有一个涉及一些“下拉选项/选择”框和提交按钮的表单。为了测试,您选择一个选项并点击提交按钮。我有我的单独的PHP表单(testform.php)基本上回显出所选的选项。但是,当您点击提交时,这会将您带到testform.php页面,并显示所选选项。我的目标是让用户选择一些选项,点击提交,然后在SAME页面上显示一些内容。例如,选择两个选项A和B(A是“4”,B是“8”),并且在表单中,我有一个等于A + B的新变量。我想要这个新变量(A的结果+ B)显示在原始页面上。在html中访问一个变量(从一个php表单)

这是一些代码。

我的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; 
?> 

所以基本上我想要做的是显示在变量$结果我索引页面。我想目前,我的索引文件没有PHP,只是形式。这样的事情会更容易,只是把我的PHP形式内主索引文件?再次,这只是为了保持简单......我的实际PHP比简单的添加问题复杂一点。谢谢!

+2

把它都在同一页面,并使用isset()函数对你的接线柱阵列,或使用Ajax,这超出了问题的范围。顺便说一句,你从来没有关闭你的选择 –

+0

如果你想要在* *相同*页面上显示,也许你应该把HTML和PHP放在*相同的*文件? – Kenney

+0

这正是AJAX的功能 –

回答

1

为了显示在同一页面上的结果,你可以把它们都放在一个文件,并忽略从actiontestform.php,并使用isset()对你的POST数组,你应该决定要添加要求用户选择的选项一个号码。 I.e .: <option value="">Please make a selection</option>

  • action = ''与“自我”相同,如“同一文件”中所示。

旁注:你永远不会关闭你的选择,你现在的代码会失败。

<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; 

脚注:

在不使用isset()对你的POST阵列,并使用相同的文件中的全部代码(HTML表单和PHP),将触发未定义指数告示。

+0

谢谢。这个工程很棒。 – ewrjontan

+0

@ewrjontan你很受欢迎,很高兴有帮助。*干杯* –

0

我有办法这样做,我不知道它是否是最好的,但在这里。

index.html文件:(I修饰的位)

<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>"; 
?> 
+0

你也可以检查是否帖子是空,或不是所有你需要的参数(两个数字)和打印,你需要选择一个你没有。 –

+0

*“你也可以检查,看看帖子是否为空”* - 使用'