2013-04-14 2 views
0

두 개의 드롭 다운 목록 "제출"버튼과 "제출"버튼과 "추가"버튼이있는 양식을 가지고 있습니다.동적으로 생성 된 텍스트 상자의 배열의 게시 된 값을 가져올 수 없습니다.

<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="POST" enctype="multipart/form-data"> 
    <?php include'includes/dipSecSelection.php'?> 
    <?php 
     if(isset($_POST['dipBox']) && isset($_POST['secBox'])){ 
      if(!empty($_POST['dipBox'])&&!empty($_POST['secBox'])){ 
       $dip= $_POST['dipBox']; 
       $sec= $_POST['secBox']; 
       $N = count($dip); 
       for($i=0; $i < $N; $i++){ 
        $add_AnnDipSec = "INSERT INTO annDipSec VALUES('$dip[$i]','$sec[$i]')"; 
        if(mysqli_query($connection, $add_AnnDipSec)){ 
         echo'Successfully Added to AnnDipSec'; 
        }else{echo'Error while trying to insert into AnnDipSec';} 
       } 
      }else{echo"Dip and Sec were Empty";} 
     }        
    ?> 
    <input type="submit" name="submit" value="Submit" class='button'> 
</form> 
:이 PHP 코드

<!----------- The dipSecSelection File -------------> 
<div id="dipSecSelection"> 
    <table> 
     <tr> 
      <td><label for="diplomes">Diplome:</label></td> 
      <td> 
       <select name="Diplomes" id="Diplomes"> 
        <option value="na">--Diplome--</option> 
        <option value="Technician">Technician</option> 
        <option value="Master">Master</option> 
        <option value="PhD">PhD</option>  
       </select>  
      </td> 
      <td id="separator">|</td><!-- Separator --> 
      <td><label for="secteurs">Secteur:</label></td> 
      <td> 
       <select name="Secteurs" id="Secteurs"> 
        <option value="na">--Secteur--</option> 
        <option value="Software Dev">Software Dev</option> 
        <option value="Engineering">Engineering</option> 
        <option value="Physics">Physics</option> 
       </select> 
      </td> 
      <td> 
       <a href="#" Onclick="addDipSec()" value="Add" class="button">Add</a> 
      </td> 
      </tr> 
    </table> 
    <table> 
     <tr> 
      <td><div id='DipTextBoxesGroup'></div></td> 
      <td><div id='SecTextBoxesGroup'></div></td> 
     </tr> 
    </table> 
</div> 

<script type="text/javascript"> 
    //Diplomas textBoxes!!! 
    var counterdip = 1; 
    var countersec = 1; 
    function addDipSec(){ 
     if(counter>5){ 
      alert("Only 5 Diplomas allow"); 
      return false; 
     }   
     var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counterdip); 
     newTextBoxDiv.after().html('<label>Diplome #'+ counterdip + ' : </label>' + 
      '<input type="text" name="dipBox[]" id="textboxdip' + counterdip + '" value="" >'); 
     newTextBoxDiv.appendTo("#DipTextBoxesGroup"); 
     $('#textboxdip'+counterdip).val($('#Diplomes option:selected').html()); 
     counter++; 

     //Secteurs textBoxes 
     if(countersec>5){ 
      alert("Only 5 Setors are allowed"); 
      return false; 
     } 
     var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + countersec); 
     newTextBoxDiv.after().html('<label>Secteur #'+ countersec + ' : </label>' + 
       '<input type="text" name="secBox[]" id="textboxsec' + countersec + '" value="" size="35">'); 
     newTextBoxDiv.appendTo("#SecTextBoxesGroup"); 
     $('#textboxsec'+countersec).val($('#Secteurs option:selected').html()); 
     countersec++; 
     alert(secBox[0].val); 
} 
</script> 

: 약간의 동적으로 생성 된 텍스트 박스에 dropdownlists은 긴 텍스트 박스의 개수로 5 미만 이것은 dipSecSelection.php 파일의 코드 형태 안에 포함되어있다

문제는 0입니다.및 secBox[]은 결코 설정되지 않으며 항상 데이터베이스 테이블에 삽입되지 않도록 아무 것도 반환하지 않습니다.

$('#textboxdip'+counterdip).val($('#Diplomes option:selected').html()); 

를이 너무

$('#textboxsec'+countersec).val($('#Secteurs option:selected').html()); 
+0

나는이 코드가 잘못된 점을 알아 냈습니다. 아무도 도와 줄 수 없습니까? –

답변

0

난 그냥 문제를 해결 - 당신의 선택에 빠진

0

option$('#Diplomes :selected')

은이 방법을 시도! 나는 폼을 완벽하게 작동 시켰을 때 폼 테이블을 첫 번째 테이블에 넣었습니다.

+0

지적 해 주셔서 감사합니다! 그러나 배열의 게시 된 값은 여전히 ​​비어 있습니다. –

관련 문제