2015-08-25 3 views
0

Я сделал форму с несколькими флажками в нем следующим образом:

<form action="" method="post"> 
    <div class="row"> 
     <div class="col-sm-9"> 
      <div class="form-group"> 
       <label>Choose rooms:</label> 
       <ul id="scegli_camere"> 
        <li><input type="checkbox" name="rooms[]" value="101" > Camera 101</li> 
        <li><input type="checkbox" name="rooms[]" value="102" > Camera 102</li> 
       </ul> 
      </div> 
     </div> 
    </div><!-- /.row --> 
    <div class="row"> 
     <div class="col-lg-6">       
      <button type="submit" class="btn btn-primary" id="btn_submit"><i class="fa fa-save"></i> Modify</button> 
     </div> 
    </div> 
</form> 

После отправки формы, если ни один из флажком не проверяется, я получаю пустой массив , в то время как если один проверяется, я получаю POST следующим образом:

Array(
    [rooms] => 
) 

Почему $ _POST [ 'номера'] всегда пусто?

+0

Я хотел бы видеть ваш полный сценарий создания формы. 'Enctype' указывает, что есть еще что посмотреть (загрузка файла: p). Возможно, одно из других полей ввода вызывает ошибку. – LaVomit

+0

Я не вижу ссылки на 'camere' в коде! –

+0

@PeterBlue извините, моя ошибка при написании вопроса, теперь его ok – BeeBee

ответ

0

Хорошо, проблема найдена. В предыдущей части кода, там было включить в конфигурационный файл, в котором следующий код генерирует проблему:

if (!get_magic_quotes_gpc()) { 
    if (isset($_POST)) { 
     foreach ($_POST as $key => $value) { 
       $_POST[$key] = trim(addslashes($value)); 
      } 
     } 

    if (isset($_GET)) { 
     foreach ($_GET as $key => $value) { 
      $_GET[$key] = trim(addslashes($value)); 
     } 
    } 
} 

Удаление его форма работает!

0

Проверьте процесс сбора, что-то не так. Попробуйте скомпоновать

<?php 
var_dump($_POST); 
?> 

или попробуйте изменить флажок "checkbox" на "text" только для того, чтобы узнать, не пуст.

0

Отлаживайте свой код шаг за шагом. Проверьте значения в консоли, или распечатать их:

foreach($room_numbers as $room_number){ 
    echo '<input type="checkbox" name="rooms[]" value="'.$room_number.'">' . $room_number; 
} 

Если его все хорошо, используйте var_dump проверить $ _POST переменной

+0

Я упростил код, как сообщалось, но проблема все еще присутствует. Вот это var_dump ($ _ POST) массива (1) { [ "номера"] => строки (0) "" } – BeeBee

0

Проблемы с вашим enctype="multipart/form-data". Если у вас нет загрузки файлов, просто удалите его, и вы можете определить свою форму, как и вы.

+0

Даже без него у меня такой же проблема – BeeBee

+0

Выезд [это манящие] (http://jsfiddle.net/uk3paxeL/). Текстовое поле показывает вам, что будет отправлено на ваш сервер. Вы уверены, что не редактируете свой '$ _POST'-global где-то до проверки вашей формы? – LaVomit

0
<form action="" method="post" enctype="multipart/form-data"> 
    <div class="row"> 
     <div class="col-sm-9"> 
      <div class="form-group"> 
       <label>Choose rooms:</label> 
       <ul id="scegli_camere"> 
        <li><input type="checkbox" name="rooms[]" value="101" > Camera 101</li> 
        <li><input type="checkbox" name="rooms[]" value="102" > Camera 102</li> 
       </ul> 
      </div> 
     </div> 
    </div><!-- /.row --> 
    <div class="row"> 
     <div class="col-lg-6">       
      <button type="submit" class="btn btn-primary" id="btn_submit"><i class="fa fa-save"></i> Modify</button> 
     </div> 
    </div> 
</form> 
<?php 
if(isset($_POST['rooms'])) 
{ 
    $data=$_POST['rooms']; 
foreach($data as $t) 
{ 
    echo "<br />".$t; 
} 
} 
?> 

Попробуйте

0

Это является довольно грубым, но он должен работать. На форме: -

<input type="checkbox" name="room101" value="1">Camera 101 
<input type="checkbox" name="room102" value="1">Camera 102 

В коде PHP: -

$room101 = (int) $_POST['room101']; 
$room102 = (int) $_POST['room102']; 

две переменные будут иметь либо 1 (Selected) или 0 (не выбрано)

Вы могли бы сделать два переменные массивы, если есть много камер.

1

Я проверил ваш код. Это работает отлично в моей среде и я получаю проверенное values.You может отлаживать два вещей:

  1. ПОГОДА флажок проверяется или нет при подаче формы
  2. print_r ($ _ POST) Печать полный массив сообщений.

Надеюсь, что это сработает.

+0

http://stackoverflow.com/a/32199811/2740073 – BeeBee

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