我想当我点击表格时,单元格值通过ajax传递给php,在警告框中显示该值。我编写了代码,但它的显示警告框值如[object HTMLTableCellElement] ..
任何人提供帮助,
这是我的代码:
function found(row) {
var table=document.getElementById("table");
var rows = table.getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
rows[i].onclick = (function() {
return function() {
var result = this.cells[1];
var plate = this.cells[6];
var km = this.cells[7];
var dataString = 'plate=' + plate + '&km='+km;
$.ajax({
type: 'POST',
url: 'km.php',
async: true,
data: dataString,
cache: false,
global: false,
success: function(result) {
alert("succ : " + result);
}
});
}
})(i);
}
}
&#13;
我的php:
<?php
$plate = $_POST['plate'];
$km = $_POST['km'];
echo $plate;
echo $km;
?>
&#13;
答案 0 :(得分:1)
您将变量设置为表格单元格元素,而不是其中的文本。
var result = this.cells[1].textContent;
var plate = this.cells[6].textContent;
var km = this.cells[7].textContent;
顺便说一句,似乎没有必要在onclick
函数周围使用IIFE模式。仅当函数引用i
时才需要这样做,但它不需要。
BTW,您可以使用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);
}
});
});