2016-01-20 107 views
0

如果我用這個代碼,以作爲輸入數字,它工作正常

<form method = "post"> 
    Hours: <input type="text" name="myvar"> 
</form> 

<?php 
require 'connect.php'; 
if (isset($_POST["myvar"])) { 

但下面的代碼獲取2號不走,如果通過,我怎樣才能使這項工作?

<form method = "post"> 
    Hours: <input type="text" name="myvar"> 
</form> 
<form method = "post"> 
    Minutes: <input type="text" name="myvar2"> 
</form> 

<?php 
require 'connect.php'; 
if (isset($_POST["myvar"]) && isset($_POST["myvar2"])) { 
+2

由於某種原因,您有兩種形式?兩個輸入'myvar'和'myvar2'應該在一個表單元素中。提交該單一表格應該按照您的預期工作。 – ann0nC0d3r

+0

你可以在刪除一個表單後更新你的新代碼嗎? –

回答

0

你只需要使用一種形式兩個領域:

<form method="post"> 
    Hours: <input type="text" name="myvar"> 
    Minutes: <input type="text" name="myvar2"> 
    <input type="submit" name="submit"> 
</form> 

而在PHP你可以使用!empty()表單輸入。

<? 
if (!empty($_POST["myvar"]) && !empty($_POST["myvar2"])) { 
... 
?> 

二的解決方案,如果你仍然想使用isset()比也增加!清空()檢查爲:

<? 
if (isset($_POST["myvar"]) && !empty($_POST["myvar"]) && 
    (isset($_POST["myvar2"]) && !empty($_POST["myvar2"]))) { 
    echo "<pre>"; 
    print_r($_POST); 
} 
?> 
+0

勇敢和至少添加downvoting接受的答案的原因,它也將幫助OP。 – devpro

3

只使用一種形式,而且有一個以上的輸入要求並與submitimage類型的輸入,使你可以提交表格

<form method = "post"> 
     Hours: <input type="text" name="myvar"/> 

     Minutes: <input type="text" name="myvar2"/> 

     <input type="submit"/> 

</form> 

我假設你不想顯示提交按鈕,你可以做的事情是用css按鈕離開屏幕。

<form method = "post"> 
      Hours: <input type="text" name="myvar"/> 

      Minutes: <input type="text" name="myvar2"/> 

      <input type="submit" 
     style="position: absolute; left: -9999px; width: 1px; height: 1px;" 
     tabindex="-1" /> 

    </form> 
+0

試過了,它仍然不會過去,如果。 –

+0

您是否說在按下回車後無法提交表單? –

1

您正在使用2種形式元素..讓一個作爲

<form method = "post"> 
Hours: <input type="text" name="myvar"> 
Minutes: <input type="text" name="myvar2"> 
</form> 
0

您正在使用2 forms element。兩個輸入應在同一form

<form method = "post"> 
    Hours: <input type="text" name="myvar"> 

    Minutes: <input type="text" name="myvar2"> 
</form> 
0

正如其他人已經提到的,你的確應該有相同的形式標記兩個輸入空格。其背後的原因是這樣的:

表單用於包含提交之後發送到服務器的數據。如果您有多個表單,則只會發送您提交表單中的數據。
因此,當您提交其中一個表單時,myvarmyvar2將被髮送到服務器。不是都。

所以,如果你檢查他們是否都設置了,它會失敗,因爲他們不是。以相同的形式

把兩個輸入字段將解決這個問題:

<form method="post"> 
    Hours: <input type="text" name="myvar"> 
    Minutes: <input type="text" name="myvar2"> 
</form> 
+0

我這樣做了,我先填寫小時,然後按分鐘,然後在填寫分鐘後按回車(在分鐘框中輸入),但未通過if。 –

+0

我應該在哪裏把echo var_dump($ _ POST [「myvar」]); echo var_dump($ _ POST [「myvar2」]);因爲如果我把它放在上面。它甚至在我按下或者寫下東西之前都是空的NULL –

0

您可以使用兩種形式,但動作要一樣,那麼你可以使用$_POST方法得到兩個變量值。

0

時間:

Minutes: <input type="text" name="myvar2" value=""> 

    <input type="submit" name="submit" value="submit"/> 

<?php 

     if (isset($_POST['submit']) && !empty($_POST['submit'])) 
    { 
     echo $_POST['myvar']; 
     echo "<br/>"; 
     echo $_POST['myvar2']; 
    } 

>