Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过使用javascript应用过滤器变量来隐藏表行?_Javascript_Php - Fatal编程技术网

如何通过使用javascript应用过滤器变量来隐藏表行?

如何通过使用javascript应用过滤器变量来隐藏表行?,javascript,php,Javascript,Php,仅供参考-我正在使用PHP和MySQL制作时间表项目 我不熟悉PHP,我尝试使用PHP生成HTML表格行并为它们分配行id,但问题是我的表格显示了大量行,因此我制作了一个javascript过滤器,只显示与过滤器值匹配的行 但问题是我不知道如何使用row id,然后使用它们的值与javascript变量进行比较,并基于match将其CSS属性设置为display(如果匹配)或hide(如果不匹配) 还有别的办法吗 这里是过滤器部分 <div class='row'> <d

仅供参考-我正在使用PHP和MySQL制作时间表项目

我不熟悉PHP,我尝试使用PHP生成HTML表格行并为它们分配行id,但问题是我的表格显示了大量行,因此我制作了一个javascript过滤器,只显示与过滤器值匹配的行

但问题是我不知道如何使用row id,然后使用它们的值与javascript变量进行比较,并基于match将其CSS属性设置为display(如果匹配)或hide(如果不匹配)

还有别的办法吗

这里是过滤器部分

<div class='row'>
   <div class='col'>      
            <label>Select Filters:</label> 
    </div>
</div>

<div class='row'>
   <div class='col'>
       <div class='filter'>
           <label>EmpID:</label>
           <select id='empid_select'>
               <option value='' >select</option>
               <?php

                    include('connection.php');
                    $stmt = $conn->prepare('SELECT `EmpID`, `Name` FROM `employee_data` ORDER BY `EmpID` ');

                    if($stmt->execute()){

                        $stmt->bind_result($empid, $empname);

                        while($stmt->fetch()){
                            echo "<option value='$empid'>$empid - $empname</option>";
                        }

                    }else{

                        printf("Error: %s\n", $conn->error);

                    }

                    $stmt->close();
               ?>
           </select>
           &nbsp;&nbsp;
           <label>Project Code:</label>
           <select id='projectcode_select'>
               <option value=''>Select</option>
               <?php

                    include('connection.php');
                    $stmt = $conn->prepare('SELECT `Projectcode`, `Title` FROM `Projectcodetbl` ORDER BY `Projectcode` ASC ');


                    if($stmt->execute()){

                        $stmt->bind_result($projectcode, $title);

                        while($stmt->fetch()){
                            echo "<option value='$projectcode'>$projectcode - $title</option>";
                        }

                    }else{

                        printf("Error: %s\n", $conn->error);

                    }


               ?>
           </select>
           &nbsp;&nbsp;
           <label>Start Date: </label>
           <input type='date' name='startdate-filter' id='startdate-filter' >
            &nbsp;&nbsp;
           <label>End Date: </label>
           <input type='date' name='enddate-filter' id='enddate-filter' >
           &nbsp;&nbsp;
           <button name='notseen-entries-filter-button' id='notseen-entries-filter-button'>Apply</button>

       </div>
   </div>
</div>  

看看tablesorter,这是我在一个包含大量行的php站点中实现的一个很好的特性。有这么多的路径可供选择感谢您的努力,我已经看到了,但它正在对行进行排序,但我想使用一些过滤器,它可以使用javascript变量隐藏和显示行。您可以使用表单隐藏和显示行,然后,该表单将成为SQL查询的一部分,类似于
select*from表,其中某些东西==$checked'
只是一个想法,但很乐意提供帮助out@Travis,谢谢你的帮助。我正在尝试,我会更新这个问题。
<script>

   $(document).ready(function(){



    $('[name="notseen-entries-filter-button"]').click(function(e){

        var empid = $('#empid_select option:selected').val();
        var projectcode = $('#projectcode_select option:selected').val();
        var startdate = $('#startdate-filter').val();
        var enddate = $('#enddate-filter').val();

        alert("Filter rows with values EmpID: "+empid+", ProjectCode: "+projectcode+", StartDate: "+startdate+", EndDate: "+enddate);   


    });

});

</script>
function displayTableHeading(){

    echo "
    <form action='selected.php' method='post'>
        <table border='1' cellpadding='10' cellspacing='0'>
            <tr>

                <th colspan='13'><button type='submit' class='btn btn-outline-primary'  style='border-radius: 3px;'><i class='fas fa-edit' style='margin-right:10px;'></i>Update</button>
            </tr>
            <tr>
                <th>Row</th>
                <th>EmpID - Name</th>
                <th>Date</th>
                <th>Start Time</th>
                <th>End Time</th>
                <th>Hrs</th>
                <th>Project Code</th>
                <th>Task Performed</th>

                <th>Invoice Num</th>
                <th colspan=3>Status</th>

            </tr>";


}
//Webpage Table Row
function displayTableRow($row, $i, $empid){

        $notBillable = intval( $row['Status'] )==1 ? 'checked' : '';
        $billablePlusNotInvoiced = intval( $row['Status'] )==2 ? 'checked' : '';
        $billablePlusInvoiced = intval( $row['Status'] )==3 ? 'checked' : '';

        printf("
        <!-- record: %d -->
        <tr id='%d'>
            <td><input type='text' size='1' value='%d' ></td>
            <td><input type='text' size='10' name='empid[]' value='%s'></td>
            <td><input type='text' size='7' name='date[]' value='%s' ></td>
            <td><input type='text' size='5' name='stime[]' value='%s' ></td>
            <td><input type='text' size='5' name='etime[]' value='%s' ></td>
            <td><input type='text' size='1' name='hours[]' value='%s' ></td>
            <td><b><input type='text' size='9' name='projectcode[]' value='%s' ></b></td>
            <td><input type='text' size='30' name='taskperformed[]' value='%s' ></td>

            <td><input type='text' size='8' name='invoicenum[]' value='%s' ></td>
            <td><input type='radio' name='status_{$i}[]' value='1' %s/>NB</td>
            <td><input type='radio' name='status_{$i}[]' value='2' %s/>B+NI</td>
            <td><input type='radio' name='status_{$i}[]' value='3' %s/>B+I</td>
            <input type='hidden' name='modifieddate[]' value='%s'>
        </tr>",
        $i,$i,$i,
        getEmpNameById($empid),
        $row['Date'],
        $row['StartTime'],
        $row['EndTime'],
        $row['NoOfHours'],
        $row['ProjectCode'],
        $row['TaskPerformed'],
        $row['InvoiceNumber'],
        $notBillable,
        $billablePlusNotInvoiced,
        $billablePlusInvoiced,
        $row['ModifiedDate']
   );


}    
$sumNoOfHours = 0.0;                                
displayTableHeading(); 

$i=1;  
foreach($empid_array as $code){

    //split the $code variable to get the emp id 
    $codearr = explode(" - ", $code);
    $empid = $codearr[0];

    $selectSql = "SELECT * FROM `mastertbl` WHERE EmpID = '$empid' AND Status = 0 ORDER BY Date DESC, ModifiedDate DESC";
    $result = mysqli_query($conn, $selectSql) or die( mysqli_error($conn));                                                           
    while($row = mysqli_fetch_array($result))
    {
        $sumNoOfHours = $sumNoOfHours + $row['NoOfHours'];
        displayTableRow($row, $i, $empid);
        $i++;

    }

}