2016-06-24 88 views
1

我想顯示特定的數據,如果在窗體中設置了兩個變量。無法獲取多個Isset變量

$retired = ""; 
$stolen = ""; 

if(isset($_POST['submit'])){ 
    $retired = $_GET['showretired']; 
    $stolen = $_GET['showstolen']; 
} 

我已經試過了波紋管:

<?php }elseif(isset($_GET['showretired']) && (isset($_GET['showstolen'])){ ?>

不工作

<?php }elseif(isset($retired, $stolen)){

時沒有設置其中一期工程

<?php }elseif(isset($_GET['showretired'], $_GET['showstolen'])) {

這一個只顯示退休的部分。

我不確定這樣做的最佳方法。

這裏是形式:

<form> 
     <label>Show Retired Column </label><input type="checkbox" name="showretired"> 
     <label class="space">Show Stolen Column </label><input type="checkbox" name="showstolen"> 
     <input class="space" type="submit" name="submit" value="Refine"> 
    </form> 

這是我如何使用在同一文件中的變量。

   <?php }elseif(isset($_GET['showretired'], $_GET['showstolen'])) { 
        ?> 
       <tr> 

        <th>Retired</th> 
        <th>Stolen</th> 
       </tr> 
       <?php }else{ ?> 
+0

你爲什麼要爲POST檢查? –

+0

我錯過了 –

回答

1
<?php 

if(isset($_POST['submit'])){ 
    if(isset($_POST['showretired'])) { 
     $retired = $_POST['showretired']; 
    } 
    if(isset($_POST['showstolen'])) { 
     $stolen = $_POST['showstolen']; 
    } 

    if(isset($retired)){ 
    echo $retired; 
} 
if(isset($stolen)) { 
    echo $stolen; 
} 
} 



?> 

<form action="" method="POST"> 
    <label>Show Retired Column </label><input type="checkbox" name="showretired" value="The retired field"> 
    <label class="space">Show Stolen Column </label><input type="checkbox" name="showstolen" value="The showstolen field"> 
    <input class="space" type="submit" name="submit" value="Refine"> 
</form> 
+0

我還只退休顯示# –

+0

這與你的複選框有關。需要一個'值=「選中」' –

+0

所以我給他們的價值觀,但仍然沒有改變 –

0

表單上沒有方法意味着它將默認爲GET。更改條件並檢查您的複選框。

<?php 

if(isset($_GET['submit'])){ 
    $foo = isset($_GET['foo']) ? true : false; 
    $bar = isset($_GET['bar']) ? true : false; 
    var_dump($foo); 
    var_dump($bar); 
} 

?> 

<form> 
    <input type="checkbox" name="foo"> 
    <input type="checkbox" name="bar"> 
    <input type="submit" name="submit"> 
</form> 
+0

好吧,這樣做並不會改變結果,但增加了'showretired'和'showstolen'的未定義索引。 –

+0

@SaucedApples如果複選框沒有被選中,他們將是未定義的。已更新答案以包含複選框檢查。 – Progrock

+0

他們都轉儲bool(true)但只顯示退役 –

0
if(isset($_GET['submit'])){ 

     if(isset($_GET['showretired']) && $_GET['showretired'] !="" && isset($_GET['showstolen']) && $_GET['showstolen'] !="") 
     { 

      echo $retired." ".$stolen; 
     } 


    } 

和形式

<form> 
    <label>Show Retired Column </label><input type="checkbox" name="showretired" value="showretired" checked="checked"> 
    <label class="space">Show Stolen Column </label><input type="checkbox" name="showstolen" value="showstolen" checked="checked"> 
    <input class="space" type="submit" name="submit" value="Refine"> 
</form> 

希望在您的if語句,然後得到確認這將有助於