2016-06-24 18 views
1

フォームに2つの変数が設定されている場合、特定のデータを表示しようとしています。複数のIsset変数を取得できません

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

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

私は怒鳴るを試してみました:

<?php }elseif(isset($_GET['showretired'], $_GET['showstolen'])) {を設定していないときに動作し

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

動作しない

<?php }elseif(isset($_GET['showretired']) && (isset($_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

を助けることを願っていますか? –

+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

これはあなたのチェックボックスと関係があります。必要なのは 'value =" checked "' –

+0

なので、値を与えても変更はありません –

0

フォーム上のメソッドは、デフォルトではGETになります。条件を変更し、チェックボックスをオンにします。

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

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


    } 

とフォームはあなたのif文、その後、取得のためのチェック中に、それはなぜあなたはPOSTのためにチェックしている

関連する問題