2013-07-27 117 views
0

我一直在一個項目中工作,我需要根據我從兩個組合框中選擇的內容動態填充一個表,所以問題是我需要採取這些值來保存它們數據庫,但我找不到辦法做到這一點。從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> 
     "); 
} 
?> 

這是我填的表格的方式,但是現在當我提交頁面來獲取和保存數據時,我無法找到獲取包含的數據的方式,我會提供任何幫助。

我試着解釋我能做到的最好,如果有什麼不清楚的地方,請讓我知道,我會回答一個更好的解釋。

+0

擺脫你需要從一個頁面提交的數據,在上面的代碼中我沒有看到 – 2013-07-27 03:13:39

+1

@Dagon - 使用Ajax時,您不需要表單元素。 (我假設你的「from」是一個本應該是「form」的錯字。)Aaron - 你的問題標題和標籤說「發佈」,但你的代碼做了「獲得」 - 這是故意的嗎? – nnnnnn

+0

返回的結果/狀態是什麼?檢查你最喜歡的'web inspector'中的'network tab'。 – Ohgodwhy

回答

0

我知道這是一個老問題,但我遇到了同樣的事情,這就是我所做的。

  1. 創建一個DataRow對象包含在每個行
  2. 通過表格中的行迭代的字段(跳過報頭),並存儲在每行中一個DataRow推它到陣列。
  3. 使用JSON.Stringify將陣列轉換爲JSON
  4. 將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/