如何根据单元格值

时间:2015-06-22 00:32:39

标签: javascript php jquery html row

我正在尝试根据表格的单元格值删除一行。

在我的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等?

注意:我不是要删除数据库中的行。我只想在Match0%时删除该行。

编辑,外部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%的行。

1 个答案:

答案 0 :(得分:1)

    应该在ajax成功回调中调用
  • 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();
        }
    });
}