2013-06-05 2 views
0

이제는 for 루프를 통과하는 양식이 있습니다.이 루프는 그에 따라 원하는 옵션의 횟수만큼 반복됩니다. 여기 데이터베이스에 체크되지 않은 배열 체크 박스 변수를 삽입합니다.

는 대한 코드입니다 : "필수 필드"

<?php for ($i =1; $i <=20; $i++) { ?> 
       <tr> 
         <td><center><input type="text" name="qnsNo[]" class="qnsNo"/></center></td> 
        <td><input type="text" name="question[]" class="question"/></td> 
        <td><select name="input[]" class="dropdown"> 
          <option value="Normal text line, no input required*">Normal text line, no input required*</option> 
          <option value="Multiple choice (only one answer) [Radio Button]">Multiple choice (only one answer) [Radio Button]</option> 
          <option value="Multiple choice (multiple answers) [Check box]">Multiple choice (multiple answers) [Check box]</option> 
          <option value="Drop-Down Box">Drop-Down Box</option> 
          <option value="Comment/Essay Box [Textarea]">Comment/Essay Box [Textarea]</option> 
          <option value="Single Line Textbox">Single Line Textbox</option> 
         </select></td> 
        <td><input type="text" name="options[]" class="option"/></td> 
        <td><input type="text" name="others[]" class="others"/></td> 
        <input type="hidden" name="compulsory[]" value=""/> 
        <td><center><input type="checkbox" name="compulsory[]" value="Compulsory"/></center></td> 

        </tr> 
        <?php } ?> 

이 양식은 실제로 사람들이 마지막 컬럼에 대해, 자신의 양식을 만들 수 있도록하는 것입니다 무엇을 그들이이 질문을 강제적으로 원하는지 아닌지 선택할 수있게하십시오. 하지만 현재 나는 데이터베이스에 올바르게 체크 박스 결과를 삽입 할 수없는 것 같습니다.

데이터베이스에 체크되지 않은 체크 박스 응답을 삽입하려면 실제 체크 박스 줄 앞에 숨겨진 필드를 넣을 수 있습니다. 필자는 행운을 빕니다. 삽입 부분이 여전히 올바르지 않습니다. 어디로 값을 삽입 할 수 있습니다 체크되지 않은 및 확인에 따라?

$sql_array = array(); 
    foreach ($_POST['question'] as $row => $name) { 

     $question = $name; 
     $qnsNo = $_POST['qnsNo'][$row]; 
     $input = $_POST['input'][$row]; 
     $options = $_POST['options'][$row]; 
     $others = $_POST['others'][$row]; 
     $compulsory = $_POST['compulsory'][$row]; 

     $idQuery = "SELECT max(surveyID) FROM scSurveyForm WHERE createBy = '$createBy' AND writeUp = '$writeUp'"; 
     $idResult = sqlsrv_query($conn, $idQuery); 
     $rows = sqlsrv_fetch_array($idResult); 
     $lastID = $rows[0]; 

     $sql_array[] = "('" . $question . "'," . $lastID . ",'" . $qnsNo . "','" . $input . "','" . $options . "','" . $others . "','" . $compulsory . "')"; 

     if (!empty($question)) { 

      $query_single = "INSERT INTO scFormLayout(question, surveyID, qnsNo, input, options, others, compulsory) 
    VALUES" . implode(', ', $sql_array); 
      echo $query_single.'<br/>'; 
      $status = sqlsrv_query($conn, $query_single); 
      $sql_array = array(); 
     } 
    } 

답변

0

추가 :이 선택 해제의 경우와 마찬가지로 , 필요한 경우

...이 확인 않다면 다음 '강제'삽입합니다 '널'이 될 것이다, 여기에 데이터베이스에 삽입하는 코드입니다 번호를 체크 박스의 이름으로 사용하십시오.

// you get TRUE or FALSE 
$compulsory = isset($_POST['compulsory'][$row]); 
:
<input type="checkbox" name="compulsory[<?php echo $i; ?>]" ... > 

및 테스트 확인란 $_POST

// you get 'on' or NULL 
$compulsory = isset($_POST['compulsory'][$row]) ? $_POST['compulsory'][$row] : NULL; 

이하에있는 경우

관련 문제