我一直在一个项目中工作,我需要根据从两个组合框中选择的内容动态填充一个表,所以问题是我需要获取这些值来将它们保存在数据库中,但我找不到这样做的方法。
当我按下按钮时的代码:
<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>
");
}
?>
这就是我填写表格的方式,但现在我只是在提交页面以获取和保存数据时找不到获取包含数据的方法,我会寻求任何帮助。
我尽力解释,如果有什么不清楚的地方,请告诉我,我会做出更好的解释。
我知道这是一个老问题,但我遇到了同样的问题,下面是我所做的。
- 创建了一个包含每行字段的
DataRow
对象 - 遍历表的行(跳过标题),并将每一行存储在
DataRow
中,然后将其推送到Array中 - 使用
JSON.Stringify
将数组转换为JSON - 将JSON存储在
<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/