2013-03-15 6 views
0

내가 PHP를 사용하여 HTML 체크 박스를 생성하는 형태 내 university_handler 데이터베이스로의 모든 값을 삽입하는 데 사용하기foreach 루프는

<p><form name="university" action="/university_handler" method="post"> 
    <fieldset> 
    <table class="table"> 
     <thead> 
     <tr> 
      <th><span class="help-block">University Department</span></th>        
     </tr> 
     </thead> 
     <tbody> 
     <tr> 
      <td><?php 
      $query = mysqli_query($db, "SELECT university_department FROM university WHERE university_id = '$university_id'") 
       or die ("Could not search!"); 
      while($row = mysqli_fetch_array($query)){ 
       $university_department = $row['university_department']; 
       $_SESSION['university_department'] = $university_department; 
       $universityDepartment = $_SESSION['university_department']; 
       echo "<label><input type='checkbox' name='university_department[]' value='{$universityDepartment}'>$universityDepartment</label><br><input type='text' value='' name='professor_name[{$universityDepartment}]' placeholder='Professor-Name'><input type='text' value='' name='class_name[{$universityDepartment}]' placeholder='Class-Name'>";} 
      ?></td> 
     </tr> 
     </tbody> 
    </table> 
    <button type="submit" name="Submit"class="btn btn-info">Submit</button> 
    </fieldset> 
</form></p> 

아래 도시 갖는 (확인 및 미확인) 체크 박스는 체크 된 것들 대신에 삽입됩니다. 나는 아무 것도 일하지 않는 범위를 시도해 왔습니다. 여기 처리기가 있습니다.

<?php 
session_start(); 
include("connect.php"); 

$university_id = $_SESSION['university_id']; 

// check if share_form is submitted and not empty 
$error_message = ""; 
if(is_array($_POST['university_department']) && !empty($_POST['university_department'])){ 
    $error = array(); 
    $universityDepartment = $_POST['university_department']; 
    if (count($universityDepartment)>0){ 
    foreach (str_replace('#', '', $_POST['class_name']) as $departmentName => $stripid){ 
     $class_name_backslash = $stripid . '/'; 
     $class_name = mysqli_real_escape_string($db, $stripid); 
     print_r($class_name); 
    } 
    $query_uni = ("INSERT INTO temp_list(departmentName, class_name, professor_name) VALUE ('$departmentName','$class_name', '$professor_name')"); 
    $q_u = mysqli_query($db, $query_uni) or die ('Error posting data'); 
} 
}?> 
+0

왜 마지막을 사용하는 세 가지 변수 만 설정) =이 있지만,이

<?php $departList = ($_POST['university_department'] ? $_POST['university_department'] : ($_GET['university_department'] ? $_GET['university_department'] : array())); $classList = ($_POST['class_name'] ? $_POST['class_name'] : ($_GET['class_name'] ? $_GET['class_name'] : array())); $profList = ($_POST['professor_name'] ? $_POST['professor_name'] : ($_GET['professor_name'] ? $_GET['professor_name'] : array())); if (count($departList) > 0) { foreach ($departList as $key => $val) { $class = $classList[$val]; $professor = $profList[$val]; $query_uni = ("INSERT INTO temp_list(departmentName, class_name, professor_name) VALUE ('$val','$class', '$professor')"); $q_u = mysqli_query($db, $query_uni) or die ('Error posting data'); } } ?> 

행운을 작동합니다 변경을 자유롭게? '$ university_department = $ row [ 'university_department'];''$ _SESSION [ 'university_department'] = $ university_department;' '$ universityDepartment = $ _SESSION [ 'university_department'];' – Pete

+0

약간의 프로 팁 : 'include' 나'require'를 통해 파일을 포함 할 때'include_once()'또는'require_once()'를 사용하여 나중에 다른 것들을 포함하는 파일을 포함하고있을 때 나중에 함수를 정의하기 위해 ping을받지 않도록해야합니다 2 번 또는로드 시간이 길어집니다. – Mic1780

답변

1

나는 @ 마틴의 대답을 좋아합니다. 내가 바꾸고 싶은 것은 $_REQUEST

$_REQUEST을 사용할 때 게시물을 보거나 변수를 얻고 두 값 중 하나를 사용한다고 말합니다. 같은 이름의 변수가 $_POST이고 $_GET 인 경우 어떻게됩니까? 하나는 사용되지만 다른 하나는 사용되지 않습니다.

그래서 같은 코드를 다른 방식으로 사용할 수 있습니다.

$checkBoxName = (isset($_POST['checkBoxName']) ? $_POST['checkBoxName'] : (isset($_GET['checkBoxName']) ? $_GET['checkBoxName'] : '')); 
if ($checkBoxName != '') { 
    //do stuff here 
} 

당신이 볼 수있는 전에 보이지 않는 것을 확인 있도록, 구글의 Chromes 개발자 도구 같은 것을 사용하지 않고 순서대로 그것을 할 최선의 노력을 포스트 정보를 볼 수 없기 때문에이 방법. 이 = 도움이

희망)

는 편집 : 당신이 내게 준 정보를 바탕으로

, 난 오프 확인 클래스 만 삽입 할 수있는 방법을 마련 할 수 있었다.

+0

안녕하세요! if 문 안에 $ checkBoxName을 출력 할 때 작동합니다. $ name => $ id와 같은 foreach (str_replace ('#', '_, $ _POST ['checkBoxName '])) {\t \t \t \t \t \t print_r ($ checkBoxName); \t \t \t \t \t 인쇄 '
';}'모든 확인란을 인쇄 ..... – Nerdia

+0

당신은 나에게 당신의 전체'$ _POST' 배열의''print_r' 또는 var_dump'을주지하시기 바랍니다 수 있습니다.이것은 내가 당신의 반복을 통해 무엇을 알아내는 데 도움이 될 것입니다 – Mic1780

+0

질문을 다시 읽은 후에 나는 이해한다고 생각합니다. 당신이 묻는 무엇이 체크 박스가 검사되는 단지 대신에 모든 모양 정보가 삽입되는지 왜이다. 이 올바른지? (화학) => 화학 101 (생화학) => [생화학] =>) [교수 이름] : $ _POST의 – Mic1780

0

체크 상자가 선택되어 있는지 확인하려면 isset 함수를 사용할 수 있습니다.

if (isset($_REQUEST['checkBoxName'])); 
    { 

    $variable = $_REQUEST['checkBoxName']; 
    } 

이 방법을 사용하면 값이있는 체크 박스 만 표시됩니다.

희망이 있습니다.

관련 문제