2015-04-25 55 views
1

我想單擊表格中的單元格值時,通過ajax將值傳遞給警報框中的值。我寫的代碼,但它顯示提示框的值,例如[對象HTMLTableCellElement] ..如何通過ajax將表格單元格的值傳遞給php

任何人的幫助,

這裏我的代碼:

function found(row) { 
 
    \t 
 
    \t var table=document.getElementById("table"); 
 
    var rows = table.getElementsByTagName("tr"); 
 
    for (var i = 0; i < rows.length; i++) { 
 
\t \t rows[i].onclick = (function() { 
 
      
 
      return function() { 
 
      \t var result = this.cells[1]; 
 
      \t var plate = this.cells[6]; 
 
      \t var km = this.cells[7]; 
 
      \t var dataString = 'plate=' + plate + '&km='+km; 
 
      \t $.ajax({ 
 
       type: 'POST', 
 
       url: 'km.php', 
 
       async: true, 
 
       data: dataString, 
 
       cache: false, 
 
       global: false, 
 
       success: function(result) { 
 
       \t alert("succ : " + result); 
 
        
 
       } 
 
      }); 
 
       
 
      }  
 
     })(i); 
 
    } 
 
}

我的PHP:

<?php 
 
$plate = $_POST['plate']; 
 
$km = $_POST['km']; 
 
echo $plate; 
 
echo $km; 
 

 
?>

+0

發表您的HTML請 –

回答

1

您將變量設置爲表單元格元素,而不是其中的文本。

var result = this.cells[1].textContent; 
var plate = this.cells[6].textContent; 
var km = this.cells[7].textContent; 

順便說一句,似乎並不需要圍繞您的onclick函數使用IIFE模式。只有在函數引用i時才需要,但它不是。

順便說一句,你可以寫了整個事情更簡潔地使用jQuery:

$("#table tr").click(function() { 
    var cells = $(this).find('td'); 
    var result = cells.eq(1).text(); // This isn't used? 
    var plate = cells.eq(6).text(); 
    var km = cells.eq(7).text(); 
    $.ajax({ 
     type: 'POST', 
     url: 'km.php', 
     async: true, 
     data: {plate: plate, km: km}, 
     cache: false, 
     global: false, 
     success: function(result) { 
      alert("succ : " + result); 

     } 
    }); 
}); 
+0

再怎麼..你能告訴 – appu

+1

什麼是你想用問嗎? – Barmar

+0

@appu答案就在那裏......而且你不應該爲每一行綁定一個事件處理程序,你只需要一個。 – jeroen

相關問題