2013-07-27 2 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

, чтобы получить данные, представленные со страницы вам нужно из , который я не вижу в ode выше –

+1

@ Dagon - вам не нужен элемент формы при использовании Ajax. (Я предполагаю, что ваш «из» был опечаткой, которая должна была быть «формой».) Аарон. Заголовок вопроса и теги вопроса «пост», но ваш код «получает» - это специально? – nnnnnn

+0

Каков результат/статус, который возвращается? Проверьте «сетевую вкладку» в своем любимом «веб-инспекторе». – Ohgodwhy

ответ

0

Я знаю, что это старый вопрос, но я столкнулся с тем же, и вот что я сделал.

  1. Создан DataRow объект, содержащего поле каждой строки
  2. Iterated через строки таблицы (пропуск заголовка) и хранил каждую строку в 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/

Смежные вопросы