2015-03-20 2 views
0

У меня есть три столбца в таблице базы данных и вы хотите добавить от 0 до 3 значений (тем) из флажков в столбцы.Вставьте несколько значений флажков в три столбца в таблице mySQL

HTML:

<ul class="checkbox" id="topicarea"> 
           <li><input type="checkbox" name="topic[]" value="AG">Agriculture<br /></li> 
           <li><input type="checkbox" name="topic[]" value="ART">Art<br /></li> 
           <li><input type="checkbox" name="topic[]" value="BIO">Biological Sciences<br /></li> 
           <li><input type="checkbox" name="topic[]" value="BUS">Business<br /></li> 
           <li><input type="checkbox" name="topic[]" value="COM">Communication<br /></li> 
           <li><input type="checkbox" name="topic[]" value="IT">Information Technology<br /></li> 
           <li><input type="checkbox" name="topic[]" value="EDU">Education<br /></li> 
           <li><input type="checkbox" name="topic[]" value="ENGR">Engineering<br /></li> 
           <li><input type="checkbox" name="topic[]" value="ENVS">Environmental Science<br /></li> 
           <li><input type="checkbox" name="topic[]" value="HE">Health<br /></li> 
           <li><input type="checkbox" name="topic[]" value="LANGLIT">Language and Literature<br /></li> 
           <li><input type="checkbox" name="topic[]" value="LAW">Law<br /></li> 
           <li><input type="checkbox" name="topic[]" value="PHR">Philosophy and Religion<br /></li> 
           <li><input type="checkbox" name="topic[]" value="PHYS">Physical Science<br /></li> 
           <li><input type="checkbox" name="topic[]" value="PSY">Psychology and Counseling<br /></li> 
           <li><input type="checkbox" name="topic[]" value="RECFIT">Recreation and Fitness<br /></li> 
           <li><input type="checkbox" name="topic[]" value="CON">Skilled Trade and Construction<br /></li> 
           <li><input type="checkbox" name="topic[]" value="LIBART">Social Sciences and Liberal Arts<br /></li> 
           <li><input type="checkbox" name="topic[]" value="SOCSRV">Social Services<br /></li> 
           <li><input type="checkbox" name="topic[]" value="TRANS">Transportation<br /></li> 
           <li><input type="checkbox" name="topic[]" value="OTHER">Other<br /></li> 
          </ul> 

PHP: Я поставил три переменные (темы 1, 2 и 3) Но я не знаю, что установить их. Я полагаю, что они должны пройти через флажки и установить их, когда они найдут значение? Как я могу захватить от 0 до 3 проверенных значений, чтобы я мог их вставить?

<?php 
    include('local-connect.php'); 

    $fname = mysqli_real_escape_string($dbc, $_POST['firstname']); 
    $lname = mysqli_real_escape_string($dbc, $_POST['lastname']); 
    $email = $_POST['email']; 
    $password = $_POST['pword'];  
    $address1 = $_POST['lineone']; 
    $address2 = $_POST['linetwo']; 
    $city = $_POST['city']; 
    $state = $_POST['state']; 
    $zip = $_POST['zip']; 
    $phone = $_POST['phone']; 
    $ageGroup = $_POST['agegroup']; 

    $topic1 =  
    $topic2 = 
    $topic3 = 

    $bio = $_POST['bio']; 
    $profilePic = $_POST['fileToUpload']; 

    $query = "INSERT INTO teachers(fname, lname, email, pword, address1, address2, city, state, zip, phone, ageGroup, topic1, topic2, topic3, bio, profilePic)" . 
      "VALUES('$fname','$lname','$email','$password','$address1','$address2','$city','$state','$zip','$phone','$ageGroup','$topic','$bio','$profilePic')"; 

    $result = mysqli_query($dbc, $query) or die('Unable to Connect to Database or the Registration is incomplete!'); 

    mysqli_close($dbc); 

?> 

ответ

0

Данные вы ищете будет

$_POST['topic']; 

Вы должны быть в состоянии получить тройку, как это:

$topic1 = $_POST['topic'][0];  
$topic2 = $_POST['topic'][1]; 
$topic3 = $_POST['topic'][2]; 
0

Вы можете использовать jquery для этого. Инициализировать переменную

var n=0; 

Когда пользователь проверяет флажок, увеличить значение п на 1

n++; 

и проверить одновременную установку, если значение n равно 3. Отключить все флажки.

0

Вы не можете быть уверены, что все три из них установлены (даже с проверкой JavaScript на стороне клиента), поэтому вам нужна некоторая проверка для ввода.

$topics = $_POST['topic']; 
if(is_array($topics)) { 
    // have an array of values 
    $topic1 = (array_key_exists(0, topics))? $topics[0] : 'NULL'; 
    $topic2 = (array_key_exists(1, topics))? $topics[1] : 'NULL'; 
    $topic3 = (array_key_exists(2, topics))? $topics[2] : 'NULL'; 
} 
else { 
    // have single or none value 
    $topic1 = (isset($topics))? $topics : 'NULL'; 
    $topic2 = 'NULL'; 
    $topic3 = 'NULL'; 
}