2014-02-06 3 views
1

У меня есть несколько флажков (массив), как коды ниже:Невозможно получить значения из CheckBox массива

      <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Business" /> Business</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Public Affairs/Law" />Public Affairs/Law</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Medicine" />Medicine</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Literature/Writing/Journalism" />Literature/Writing/Journalism</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Technology" />Technology</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Engineering" />Engineering</label> 
          </div> 

Когда форма отправлена, я попытался получить выбранные значения с помощью:

  print_r($_POST['major']); 

его печатает:

  Array ([0] => [1] =>) 

это обнаружение двух флажков галочки, но это как-то не удается получить значения из. Что я делаю не так?

======================= PHP-фрагменты ====================== =======

require 'dbconnect.php'; 


if($_SERVER["REQUEST_METHOD"] == "POST"){ 
       if(isset($_POST['major'])){ 

       $top_majors = implode(',', $_POST['top_three_major']); 

       echo $top_majors; 
      }else{ 

       $top_majors = '-'; 

      } 
} 

======================= решаемые ============ ================

Хорошо, я решил свою проблему. Это была глупая ошибка, когда я пытаюсь очистить поля формы, когда браузер был готов, поэтому значения флажка сбрасываются, прежде чем он сможет выполнить POST.

Спасибо, ребята, за помощь! Особенно ученик-ученик, я ценю это! Надеюсь, я смогу проголосовать за вас, но слишком плохо, моя репутация была слишком низкой.

Еще раз спасибо.

+1

Вы пропустили doublequotes для имени третьего входного – MaGnetas

+0

проверить мое (@ user2727841) ответ ... – user2727841

+1

проверить мой (@ user2727841) обновленный ответ ... – user2727841

ответ

0

Я попробовал этот код. некоторые цитаты отсутствовали. после того, как addign thos работал отлично.

<div class="checkbox"> 
          <label><input type="checkbox" name="major[]" value="Business" /> Business</label> 
         </div> 
        <div class="checkbox"> 
          <label><input type="checkbox" name="major[]" value="Public Affairs/Law" />Public Affairs/Law</label> 
         </div> 
         <div class="checkbox"> 
          <label><input type="checkbox" name="major[]" value="Medicine" />Medicine</label> 
         </div> 
         <div class="checkbox"> 
          <label><input type="checkbox" name="major[]" value="Literature/Writing/Journalism" />Literature/Writing/Journalism</label> 
         </div> 
         <div class="checkbox"> 
          <label><input type="checkbox" name=major[] value="Technology" />Technology</label> 
         </div> 
         <div class="checkbox"> 
          <label><input type="checkbox" name="major[]" value="Engineering" />Engineering</label> 
         </div> 

--PHP ---

print_r($_POST['major']); 

--out поставил -----

Array ([0] => Medicine [1] => Literature/Writing/Journalism [2] => Technology) 
+0

Отсутствующие двойные кавычки из-за моей ошибки при редактировании имени. Это было в моем исходном коде. Это как-то неспособно вернуть значение. Любая идея, почему это происходит? – user3227412

+0

жаль, что я не понял. не могли бы вы объяснить. вы $ _POST пока ничего не указали, если вы проверите? –

+0

Да, если я проверю два значения и отправлю. Он возвращает «Массив ([0] => [1] =>)». Он обнаруживает два флажка, но почему-то значения не проходят. – user3227412

0

Попробуйте

<div class="checkbox"> 
    <label><input type="checkbox" name="major[]" value="Medicine" />Medicine</label> 
</div> 
<div class="checkbox"> 
    <label><input type="checkbox" name="major[]" value="Literature/Writing/Journalism" />Literature/Writing/Journalism</label> 
</div> 
<div class="checkbox"> 
    <label><input type="checkbox" name="major[]" value="Technology" />Technology</label> 
</div> 
<div class="checkbox"> 
    <label><input type="checkbox" name="major[]" value="Engineering" />Engineering</label> 
</div> 
0

попробовать это он работает сейчас ...

<form action="<?=$_SERVER["PHP_SELF"];?>" method="post"> 
    <div class="checkbox"> 
     <label><input type="checkbox" name="major[]" value="Medicine"/>Medicine</label> 
    </div> 
    <div class="checkbox"> 
     <label><input type="checkbox" name="major[]" value="Literature/Writing/Journalism"/>Literature/Writing/Journalism</label> 
    </div> 
    <div class="checkbox"> 
     <label><input type="checkbox" name="major[]" value="Technology"/>Technology</label> 
    </div> 
    <div class="checkbox"> 
     <label><input type="checkbox" name="major[]" value="Engineering"/>Engineering</label> 
    </div> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

В php напишите этот код на той же странице, потому что я пишу $_SERVER["PHP_SELF"] в action обозначить форму отправки на той же странице, просто измените действие, если хотите.

if(isset($_POST['submit'])) { 
    echo '<pre>';print_r($_POST['major']);echo '</pre>'; 
    echo '<pre>';print_r($_POST);echo '</pre>'; 
} 
+0

Двойные кавычки изначально присутствуют в моем коде, но я случайно удалил его, когда я пытаюсь опубликовать здесь. Поэтому я не думаю, что это причина. Я все еще не могу получить значение. – user3227412

0

это работает:

<form action="" method="post" > 
    <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Medicine" />Medicine</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Literature/Writing/Journalism" />Literature/Writing/Journalism</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Technology" />Technology</label> 
          </div> 
          <div class="checkbox"> 
           <label><input type="checkbox" name="major[]" value="Engineering" />Engineering</label> 
          </div> 
          <input type="submit"> 
    </form> 
<?php 
if(isset($_POST['major'])) 
print_r($_POST['major']); 
?> 

3th name=major[]" Просто изменится name="major[]" Ваш синтаксис Html неправильно !!!

+0

Спасибо за ответ. Отсутствующие двойные кавычки связаны с моей ошибкой при редактировании имени. Это было в моем исходном коде. Я не думаю, что это причина (для моего случая) любой идеи, почему это происходит? Я попытался изолировать проблему, и она работает отлично, но не мои текущие коды. – user3227412

+0

Нет проблем;) поэтому, пожалуйста, примите мой ответ. –

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