【问题标题】:How to submit Form which consist dynamic columns and rows如何提交包含动态列和行的表单
【发布时间】:2017-04-27 07:18:59
【问题描述】:

这是表格:

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

我正在尝试将表单数据发送到控制器,但是

只有 inputtype 隐藏值来了,我可以看到任何数组

如何将此图像表单数据发送到控制器。 这是我在 cotroller 中尝试查看数组的方法:

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

【问题讨论】:

    标签: javascript php html arrays forms


    【解决方案1】:

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

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

    Refrence

    【讨论】:

    • 我也尝试过这种方法,但我仍然看不到任何数组。我的input type="number"这个我的序列化data: { gdData: $("#gdtestFrom").serialize(), 'action': 'groupDiscussion'},有什么问题吗
    • 我只是通过将表格放在表格之外进行序列化来获得解决方案
    • 太好了。享受编码
    猜你喜欢
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2021-05-21
    • 1970-01-01
    • 2015-08-05
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多