Php 使用JSON和AJAX从输入表发送值

Php 使用JSON和AJAX从输入表发送值,php,sql,ajax,json,oracle,Php,Sql,Ajax,Json,Oracle,我在收集通过表插入的值并将其收集为JSON数组时遇到问题。然后,将数组发送到一个JSON数据库进程中。所以我得到的是这个。该表是从数据库生成的,所以我使用$posId作为标识符,根据数据库中的值确定行数 <tbody> <?php $posId = 1; while ($row = oci_fetch_array($jobnameParse)){ echo "<tr>"

我在收集通过表插入的值并将其收集为JSON数组时遇到问题。然后,将数组发送到一个JSON数据库进程中。所以我得到的是这个。该表是从数据库生成的,所以我使用$posId作为标识符,根据数据库中的值确定行数

<tbody>
        <?php 
            $posId = 1;
            while ($row = oci_fetch_array($jobnameParse)){
                echo "<tr>";
                    echo "<td id='subjob'>".$row['PROJECT_NAME']."</td>";
                    echo "<td>".$row['PROJECT_DESC']."</td>";
                    echo "<td><input type='text' class='startDatePicker' style='margin-top:12px' id='startDate$posId'></td>";
                    echo "<td><input type='text' class='endDatePicker' style='margin-top:12px' id='endDate$posId'></td>";
                    echo "<td><input type='number' min='0' style='margin-top:12px' id='projectWeight$posId'></td>";
                echo "</tr>";
            $posId++;
            }
        ?>
    </tbody>

<button class="btn btn-large btn-green" onclick="submitJSON();" style="float: right;"><b>SUBMIT JOB TIMESPAN<b></button>


经过几个小时的试验,我终于找到了答案

function storeJobTableData()
    {
        var jobTableData = new Array();
        $('#jobsetupTable tr').each(function(row,tr){
            jobTableData[row]={
                "subJob":$(tr).find('td:eq(0)').text(),
                "startDate":$(tr).find('td:eq(2)').find('input').val(),
                "endDate":$(tr).find('td:eq(3)').find('input').val(),
                "subjobWeight":$(tr).find('td:eq(4)').find('input').val(),
                "job":'<?php echo $jobValue;?>'
            };
        });
        jobTableData.shift();
        return jobTableData;
    }
函数storeJobTableData()
{
var jobTableData=新数组();
$(“#作业设置表tr”)。每个(函数(行,tr){
jobTableData[行]={
“subbob”:$(tr).find('td:eq(0)').text(),
“startDate”:$(tr).find('td:eq(2)').find('input').val(),
“endDate”:$(tr).find('td:eq(3)').find('input').val(),
“subbobweight”:$(tr).find('td:eq(4)').find('input').val(),
“工作”:”
};
});
jobTableData.shift();
返回jobTableData;
}

我有不同的方法,请为您的值选择一个隐藏字段,如

<input type='hidden' name="startDatePicker[]" class='startDatePicker' style='margin-top:12px' id='startDate$posId'>

将这种类型的隐藏场放在同一个td中,用于所有td,然后 在jquery中,只需序列化表单并将值作为数组发布到php控制器上,而不是执行数据对象。 我认为这可能是简短的和有用的给你

<input type='hidden' name="startDatePicker[]" class='startDatePicker' style='margin-top:12px' id='startDate$posId'>