【问题标题】:Sending Values from input table with JSON and AJAX使用 JSON 和 AJAX 从输入表发送值
【发布时间】:2015-05-29 23:50:33
【问题描述】:

我在收集通过表插入的值并将它们收集为 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>

这是与该表相关的脚本

<script type="text/javascript">
$(document).ready(function () {
    $('#jobsetupTable').DataTable();
    $('.startDatePicker').datepicker({dateFormat:"DD, dd-MM-yy"});
    $('.endDatePicker').datepicker({dateFormat:"DD, dd-MM-yy"});
});

var jobTableData;
    jobTableData = storeJobTableData();
    jobTableData = $.toJSON(jobTableData);

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)').val(),
            "endDate":$(tr).find('td:eq(3)').val(),
            "subjobWeight":$(tr).find('td:eq(4)').val(),
            "job":'<?php echo $jobValue;?>'
        };
    });
    jobTableData.shift();
    return jobTableData;
}

function submitJSON()
{
    var tableDataValues;
    tableDataValues = $.toJSON(storeJobTableData());

    $.ajax({
        type:"POST",
        url:"processSubmitJobTable.php",
        data:{"tTableData":tableDataValues},
        success: function(msg){
            //Some Return Value
        }
    });
}

它如何不收集 .val() 输入值,我只能将 .text() 值发送到另一个页面。

【问题讨论】:

    标签: php sql ajax json oracle


    【解决方案1】:

    我有一个不同的方法来做到这一点,请为你的价值观设置一个隐藏字段,例如,

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

    将这种类型的隐藏字段放在同一个 td 中以供所有 td 使用,然后 在您的 jquery 中,而不是执行数据对象,只需序列化您的表单并将您的值作为数组发布到您的 php 控制器。 我认为这对您来说可能很简短且有用。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-08
        • 2013-05-18
        相关资源
        最近更新 更多