2016-12-12 2 views
1

form to give scores which is coming totally from dynamicКак подать Форму, которые состоят динамические столбцы и строки

это форма:

<table id="participants" class="table table-bordered table-hover table-responsive text-center"> 
<form action="gdcontroller.php" method="post" id="gdtestFrom" enctype="multipart/form-data"> 
<input type="hidden" name="action" value="groupDiscussion"/> 
<h3 class="text-center">Over All Score Sheet </h3> 
<thead class="alert-success"> 
    <tr> 
     <th class="text-center">Participant</th> 
     <?php 
      $skills = $conn->query("SELECT * from r_job_skill js 
      LEFT JOIN tbl_skillset ss ON ss.ssid=js.title 
      WHERE js.gdskill=1 AND id_job=54"); 
      while($skill = $skills->fetch_assoc()){ ?> 
      <th class="text-center"><?php echo $skill['name'];?></th> 
     <?php } ?> 

     <th class="text-center">Over All Score</th> 
     <th class="text-center"><a class="text-center btn btn-success addStudent">+ Add Student</a></th> 
    </tr> 
</thead> 

<tbody id="tbodyid"> </tbody> 
<div class="text-center"><button class="btn btn-primary text-center" type="submit" id="submitgdTest">SUBMIT GD TEST</div></button> 
</form></table> 

И мой ява скрипт добавить больше функциональных возможностей:

var studentCount = 1; 
$("#gdBasic").click(function() { 
var skillFrame = ''; 
<?php 
$skills = $conn->query("SELECT * from r_job_skill js LEFT JOIN tbl_skillset ss ON ss.ssid=js.title WHERE js.gdskill=1 AND id_job=54"); 
while($skill = $skills->fetch_assoc()){ ?> 
skillFrame +='<td><input class="setScore" type="number" name="test[][<?php echo $skill['ssid'];?>]"></td>'; 
<?php } ?> 

$("#success_message").hide(); 
$("#warning_message").hide(); 
$.ajax({ 
    url: "gdcontroller.php", 
    method: "POST", 
    data: {gdbasicData: $("#gdbasicForm").serialize(), 'action':'getStudentsForGD'}, 
    dataType: "json", 
    success: function (response) { 
     var stundetFrame = ''; 
     if(response['success']==true){ 
      $("#startTest").show(); 
      //console.log(response['success']); 
      $.each(response['studentData'], function(i, student) { 

       stundetFrame += '<tr><td><div><img class="participantphoto" src=" '+student.profile_pic+' " width="50" /></div>'+student.student_fname+' '+student.student_lname+'</td>'+skillFrame+'<td>-</td><td><span class="removeStudent btn btn-danger text-center">Remove Student</span></td></tr>'; 
      }) 

      $('#participants tr:last').after(stundetFrame); 
      }else{ 
     } 
    }, 
    error: function (request, status, error) { 
    } 
}); 
}); 

И я пытаюсь для отправки данных формы в контроллер, но

только inputtype скрытое значение наступает Я вижу любые массивы

как я могу отправить данные этой формы изображения в контроллер. это то, что я пытался в cotroller, чтобы увидеть массив:

if ($_POST['action'] == 'groupDiscussion') {   
    echo "<pre>"; 
    print_r($_POST); 
    exit; 

ответ

2

Использование Serialize() метод, он Кодировать набор элементов формы в виде строки для представления.

Метод .serialize() создает текстовую строку в стандартной кодировке с кодировкой URL. Он может действовать на объект jQuery, который отобрал отдельные элементы управления формой.

Refrence

+0

я попробовал этот метод, а еще я не могу видеть любые массивы. есть ли что-то неправильное в моем 'input type =" number "' this my serialize 'data: {gdData: $ (" # gdtestFrom "). serialize(), 'action': 'groupDiscussion'},' –

+0

Я получил решения сериализовать просто путем размещения формы за пределами таблицы –

+0

Это замечательно. Наслаждайтесь кодированием –

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