2016-06-24 2 views
1

Я пытаюсь показать конкретные данные, если две переменные заданы в форме.Невозможно GET несколько переменных 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

Это связано с вашими галочками. Необходимость 'value =" checked "' –

+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 (правда), но показывают только отставку –

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> 

Надеются, что это поможет

Смежные вопросы