0

我一直在一个项目中工作,我需要根据我从两个组合框中选择的内容动态填充表格,所以问题是我需要将这些值保存在数据库中,但我找不到方法去做这个。

我按下按钮时的代码:

 <input type="button" name="btnAgregarPrograma" value="Agregar" onClick="addRow()"/>



function addRow()
{
var dep = $("#cbxDependencia").val();
var pro = $("#cbxPrograma").val();
if(dep == 0 || pro == 0)
    alert('Debe seleccionar una dependencia y un programa para poder agregarlos'); //Traslation: you must select a dependency and a program to continue
else
{
    $.get("funciones/agregarProDep.php",{pro: pro},
        function(resultado)
        {
            if(resultado == false)
            {
                alert("Error");
            }
            else
            {
                $("#table_depProg").attr("disabled",false);
                var row = $("<tr>" + resultado + "</tr>");
                $('#table_depProg').append(row);            
            }
        }
    );
}
}

如您所见,上面的代码使用下一个代码调用了一个 php 文件

<?php
include("funciones.php");
$pro = 0;
$programas = agregarProgramaDependencia($_GET["pro"]);

foreach($programas as $fila)
{
echo ("
        <td id=".$fila['idPrograma'].">".$fila['Nombre']."</td>
        <td><input type='button' value='Eliminar' onclick='borrarFila(this)'</td>
      ");
}
?>

这就是我填写表格的方式,但是现在当我提交页面以获取和保存数据时,我只是找不到获取包含数据的方法,我会感谢任何帮助。

我试图尽我所能解释,如果有不清楚的地方,请告诉我,我会用更好的解释来回答。

4

1 回答 1

0

我知道这是一个老问题,但我遇到了同样的事情,这就是我所做的。

  1. 创建了一个DataRow包含每行字段的对象
  2. 遍历表的行(跳过标题)并将每一行存储在 a 中DataRow并将其推送到数组中。
  3. 用于JSON.Stringify将 Array 转换为 JSON
  4. 将 JSON 存储在 a 中<input type="hidden">,以便发布。

这是 HTML 示例:

<table border="2px solid black">   
    <tr id="header-row">
            <th>Dx Code</th>
            <th>Dx Date</th>
            <th>OnSet Or Ex</th>
        </tr>
    <tr>
        <td>3022</td> 
        <td>1/1/2014</td>
        <td>ONSET</td>
   </tr>
   <tr>
        <td>V9099</td> 
        <td>1/21/2014</td>
        <td>EX</td>
   </tr>  
   <tr>
        <td>1199</td> 
        <td>1/31/2014</td>
        <td>ONSET</td>
   </tr>           
</table>

<br />
<input type="button" value = "Submit" id="out">

JavaScript:

// object to hold your data
function dataRow(value1,value2,value3) {
    this.dxCode = value1;
    this.dxDate = value2;
    this.dxType = value3;
}

$('#out').click(function(){   

    // create array to hold your data
    var dataArray = new Array();

    // iterate through rows of table
    // * Start from '2' to skip the header row *
    for(var i = 2; i <= $("table tr").length; i++){
            // create object and push to array
            dataArray.push(    
                new dataRow(
                    $("table tr:nth-child(" + i + ") td").eq(0).html(),
                    $("table tr:nth-child(" + i + ") td").eq(1).html(),
                    $("table tr:nth-child(" + i + ") td").eq(2).html())
            );
    }

    var sJson = JSON.stringify(dataArray);
    alert(sJson);
})

最后,JSFiddle看看吧:http: //jsfiddle.net/leisenstein/vy3ux/

于 2014-05-27T13:02:59.060 回答