javascript - 如何提交由动态列和行组成的表单

标签 javascript php html arrays forms

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>

还有我的添加更多功能的 java 脚本:

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) {
    }
}); 
});

我正在尝试将表单数据发送到 Controller 但是

only inputtype hidden value is coming I can see any arrays

我怎样才能将这个图像形式的数据发送到 Controller 。 这是我在 cotroller 中尝试查看数组的内容:

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

最佳答案

使用serialize()方法,将一组表单元素编码为字符串提交。

.serialize() 方法以标准的 URL 编码表示法创建一个文本字符串。它可以作用于已选择单个表单控件的 jQuery 对象。

Refrence

关于javascript - 如何提交由动态列和行组成的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41100614/

相关文章:

javascript - JS AJAX typeahead 结果排序/竞争条件

php - 如果该值显示两次,则返回一行

javascript - HTML Doc 加载 JS 或 CSS 时,如何使用 PHP 减少 http 请求?

php - 将 mySQL 左连接查询的多行结果存储为一个变量

javascript - 自定义 ios 键盘以显示数字键盘

javascript - 如何注意到按 Tab 键进入文本输入字段

html - 空的 HTML 元素无意中用它的内容包裹了另一个元素

javascript - 如何循环嵌套 JSON 并在 HTML DOM 中追加

javascript - 是否保证事件处理程序在调用 AJAX 回调之前完成?

javascript - 在 VSCode 中使用 require 和根路径变量