我正在尝试根据表格的单元格值删除一行。
在我的HTML页面中,我有一个简单的搜索功能。它会通过ajax然后PHP将文本框中的值发送到数据库,然后PHP将根据数据库中的内容动态创建表。
我试图检查表中的单元格是否有特定值,这样如果为真,那么当前行将被删除,函数名称为checkMatch()
。但是它没有用。
这是HTML中的按钮,HTML的其余部分只是一个文本框和下拉框:
<input type="button" id="device_search" value="Search" onclick="searchDevice(); checkMatch();"></input>
这是外部JavaScript文件中的函数:
function checkMatch()
{
var row = document.getElementById("thisRow");
var cell = Row.getElementById("match");
if(cell[0].innerText = "0%")
{
row.deleteRow(this);
}
}
这里是在PHP中创建表:
if($num_row)
{
echo "<table id=\"myTable\" border=\"1\">";
echo "<tr>
<th>Board ID</th>
<th>Tester Name</th>
<th>Board Name</th>
<th>Current Slot</th>
<th>Log Created</th>
<th>Required Slot</th>
<th>Match</th>
</tr>";
while($row = mysql_fetch_assoc($result))
{
$board_id = $row['board_id'];
$tester_name = $row['tester_name'];
$board_name = $row['board_name'];
$config = $row['config'];
$log_created = $row['log_created'];
$req_config = $row['configuration'];
$exploded = explode(",", $req_config);
$count = count($exploded);
$j = 0;
foreach($exploded as $value)
{
$number = strlen($value);
$arr = str_split($value, $number);
if(in_array($config, $arr))
{
$j += 1;
$j /= ($count / 100);
echo $j;
}
else
{
}
}
echo "<tr id = \"thisRow\">
<td>$board_id</td>
<td>$tester_name</td>
<td>$board_name</td>
<td>$config</td>
<td>$log_created</td>
<td>$req_config</td>
<td id = \"match\">$j%</td>
</tr>";
}
echo "</table>";
}
我正在检查的列是最后一列Match
列。我的想法是,只要Match
的单元格值为0%
,就会删除当前行。我似乎无法找到我的代码有什么问题,我也不擅长操纵DOM元素,因此必定会有一些错误。对此有何帮助?还是有其他方式,通过PHP等?
注意:我不是要删除数据库中的行。我只想在Match
为0%
时删除该行。
编辑,外部js文件中searchDevice()
的代码:
function searchDevice()
{
var device_name = $("#device_name").val();
var tester_type = $("#tester_type").val();
var page = "database.php";
if(device_name==""||tester_type=="")
{
alert("Please do not leave any blanks.");
}
else
{
$.post(page, {
device_name : device_name,
tester_type : tester_type,
action : "search"
}, function(data) {
$("div#display_board").html(data);
checkMatch();
});
}
}
目前我的表格显示的是所有正确的值,但它不会删除0%的行。
答案 0 :(得分:1)
checkMatch()
id
在HTML文档中应该是唯一的<强> PHP 强>
// use `class` instead of `id`
echo "<tr class=\"thisRow\">
<td>$board_id</td>
<td>$tester_name</td>
<td>$board_name</td>
<td>$config</td>
<td>$log_created</td>
<td>$req_config</td>
<td class=\"match\">$j%</td>
</tr>";
<强>的Javascript 强>
function checkMatch()
{
$("#myTable tr.thisRow").each(function() {
var thisRow = $(this);
var match = thisRow.find(".match");
// note the `==` operator
if(match.text() == "0%") {
thisRow.hide();
// OR thisRow.remove();
}
});
}