使用post方法获取表数据

时间:2013-07-27 02:39:47

标签: php jquery http-post

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

按下按钮时的代码:

 <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>
      ");
}
?>

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

我试图解释我能做到的最好,如果有什么不清楚,请告诉我,我会回答更好的解释。

1 个答案:

答案 0 :(得分:0)

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

  1. 创建了一个包含每行字段的DataRow对象
  2. 遍历表格的行(跳过标题)并将每一行存储在DataRow中并将其推送到数组。
  3. 使用JSON.Stringify将数组转换为JSON
  4. 将JSON存储在<input type="hidden">中,以便进行POST。
  5. 以下是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/