2016-02-04 53 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

*「你也可以檢查,看看帖子是否爲空」* - 使用'