2015-05-13 3 views
0

Вот форма с флажками. Мне нужно распечатать текст, но не значение флажков.Извлечение нескольких флажков из формы с помощью «foreach»

<p>Select the cinema where you saw the film<br /> 
    Richmond <input type="checkbox" name="cinema" value="Wimbledon" /><br /> 
    Kingston <input type="checkbox" name="cinema" value="Sutton" /><br /> 
    Feltham <input type="checkbox" name="cinema" value="Kingston" /><br /> 
    </p> 

Вот страница ответа с Еогеасп цикла дается нашему учителю, который, кажется, как он не работает

> <?php 
>  $cinema =$_POST['cinema']; 
>  
>  foreach ($cinema as $cinemalocation) { 
>    print "Cinema Location:".$cinemalocation."<br />"; 
>   }; 
>  ?> 

Я также не разрешается вносить изменения в форму, Ive пытался чтобы найти ответ часами. Пока ничего полезного.

+0

Если у вас нет массива или db или что-то для поиска отношения от значения к тексту, вам нужно будет изменить форму, чтобы получить текст. –

+0

Согласен. Окружающий html не передается обработчику формы и, следовательно, недоступен. –

+0

Но если это школьное задание (упомянутый учитель) с этим ограниченным сценарием, вы можете создать простую структуру if-else для выполнения задания. –

ответ

0

Я не верю, что это возможно, учитывая, что вы не можете изменить форму. GETting и POSTing формы просто отправляет то, что у вас есть в атрибуте value.

Если вы смогли изменить форму, вы можете установить идентификатор на элементах и ​​использовать javascript.

Кроме того, учитывая, что ваши входы самостоятельно закрыты

<input type="checkbox" name="cinema" value="Wimbledon" /> 

Существует на самом деле не что-нибудь в их HTML-поле.

UPDATE: Учитывая, что вы упомянули ваш инструктор хочет, если ELSEIF решение, возможно, это то, что вы ищете for`

<?php 
$cinema =$_POST['cinema']; 

foreach ($cinema as $cinemalocation) { 
      // print "Cinema Location:".$cinemalocation."<br />"; 
    if($cinemalocation == 'Wimbledon'){ 
echo "Cinema Location: Richmond <br />"; 
} 
elseif if($cinemalocation == 'Sutton'){ 
    echo "Cinema Location: Kingston <br />"; 
} 

elseif if($cinemalocation == 'Kingston'){ 
    echo "Cinema Location: Feltham <br />"; 
} 

else{ 
echo "Cinema Location: Unknown <br />"; 
} 
     }; 
?> 
0

Предполагая, что вы можете изменить данный код страницы ответа, а также предполагаю, что это является ограниченным сценарий, при котором необходимые значения только известны, вы могли бы сделать что-то вроде этого:

<?php 
    $cinema = $_POST['cinema']; 
    foreach ($cinema as $cinemalocation) { 
     if ($cinemalocation == 'Wimbledon') { 
      print "Cinema Location: Richmond<br/>"; 
     } elseif ($cinemalocation == 'Sutton') { 
      print "Cinema Location: Kingston<br/>"; 
     } elseif ($cinemalocation == 'Kingston') { 
      print "Cinema Location: Feltham<br/>"; 
     } 
    } 
?> 

Еще раз, это базируется на ограниченные указания и сведения. Как отмечали другие, это не лучшая практика или даже сценарий реального мира. Html не возвращается в POST, и даже если бы это было так, есть намного лучшие способы добиться вывода значений на основе опубликованных выборов.

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