我想
当我单击通过ajax传递给php的单元格值在警报框中显示该值时。我写了代码,但它显示警报框值,如[对象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);
}
}
我的php:
<?php
$plate = $_POST['plate'];
$km = $_POST['km'];
echo $plate;
echo $km;
?>
您正在将变量设置为表单元格元素,而不是其中的文本。
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);
}
});
});