2013-04-09 44 views
0

以下代碼的思想是,用戶將根據維護操作進行搜索否,操作類型,執行操作的成員或需要PC的員工保養。例如,當用戶選擇操作類型時,將出現一個下拉菜單,然後他選擇該類型。之後將出現一張維護信息表。例如,用戶選擇打印類型。該表將顯示以下信息:如何隱藏基於先前搜索顯示的先前表格行

操作沒有,會員名稱,員工姓名,維護類型

1001阿德姆,約翰,印刷 1003喬治·史密斯,印刷 1010威廉·約翰,印刷

我面對的問題是,當用戶選擇操作no的搜索,例如,他選擇操作no是1001,其餘的行(基於上一次搜索顯示的1003和1010)仍然顯示出來(它們必須隱藏,因爲它們與搜索類型不匹配)。

的代碼是

<script> 
function check() { 
    var dropdown = document.getElementById("OpType"); 
    var current_value = dropdown.options[dropdown.selectedIndex].value; 

    if (current_value == "OpNo") { 
     document.getElementById("operationno").style.display = "block"; 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 
    } 
    else if (current_value == "OpTyp") { 
     document.getElementById("MainType").style.display = "block"; 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 
     document.getElementById("operationno").style.display = "none"; 
    } 
    else if (current_value == "OpMem") { 
     document.getElementById("MemName").style.display = "block"; 
     document.getElementById("operationno").style.display = "none"; 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 

    } 
    else if (current_value == "OpEmp"){ 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("operationno").style.display = "none"; 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("EmpName").style.display = "block"; 

    } 
    else if (current_value == "blank") { 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 
     document.getElementById("operationno").style.display = "none"; 

    } 
} 
</script> 

<form name="f1" action="FollowOperations.php" method="post"> 
<select id="OpType" onChange="check();"> 
<option value="blank">Choose</option> 
<option value="OpNo">Operation No</option> 
<option value="OpTyp">Operation Type</option> 
<option value="OpMem">Maintenance Member</option> 
<option value="OpEmp">Employee</option> 
</select><br> 

<input class="tb10" type="text" id="operationno" size="4" style="text-align: center" style="display: none"> 

<select id="MainType" style="display: none"> 
<option value="blank">Choose</option> 
<option value="printing">Printing</option> 
<option value="maintenance">PC Maintenance</option> 
<option value="internet">Internet Problem</option> 
<option value="software">Software</option> 
<option value="email">Email Problem</option> 
<option value="usbcd">USB/CD Problem</option> 
</select> 

<select id="MemName" style="display: none"> 
<option value="blank">Choose</option> 
<option value="john">John</option> 
<option value="hen">Hen</option> 
</select> 

<select id="EmpName" style="display: none"> 
<option value="blank">Choose</option> 
<option value="smith">Smith</option> 
<option value="will">William</option> 
<option value="Gor">George</option> 
</select> 

<input type="submit" value="Submit" class="button" /> 
</form> 

<?php 
    if (isset($_POST['formsubmitted'])) 
    { 

     $operationno = $_POST['ono']; 
      echo "<table id='tfhover' class='tftable' border='1' align='center'>"; 
      echo "<tr align='center'><th></th><th align='center'>Type</th><th>Employee</th><th align='center'>Member</th><th align='center'>Operation No</th></tr>"; 
       $query_retrieve_maintenance = "Select * from Maintenance where ID = '$operationno'"; 
       $result_retrieve_maintenance = mysqli_query($dbh, $query_retrieve_maintenance);   
        while($row1 = mysqli_fetch_array($result_retrieve_maintenance)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$row1['MemName']."</td> "; 
          echo "<td>".$row1['EmpName']."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         } 

     $MainType = $_POST['mt']; 
       $query_retrieve_by_type = "Select * from Maintenance where Type = '$MainType'"; 
       $result_retrieve_by_type = mysqli_query($dbh, $query_retrieve_by_type); 
        while($row1 = mysqli_fetch_array($result_retrieve_by_type)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$row1['MemName']."</td> "; 
          echo "<td>".$row1['EmpName']."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         } 

     $MemName = $_POST['mn']; 
       $query_retrieve_by_member = "Select ID from Member where Name = '$MemName'"; 
       $result_retrieve_by_member = mysqli_query($dbh, $query_retrieve_by_member); 
     $membID = mysqli_fetch_row($result_retrieve_by_member); 
       $memb_id = $membID[0]; 
     $query_retrieve_by_membername = "Select * from Maintenance where MemberID = '$memb_id'"; 
       $result_retrieve_by_membername = mysqli_query($dbh, $query_retrieve_by_membername); 
        while($row1 = mysqli_fetch_array($result_retrieve_by_membername)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$memb_id."</td> "; 
          echo "<td>".$row1['EmpName']."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         }  

     $EmpName = $_POST['me']; 
       $query_retrieve_by_employee = "Select ID from Employee where Name = '$EmpName'"; 
       $result_retrieve_by_employee = mysqli_query($dbh, $query_retrieve_by_employee); 
     $emplID = mysqli_fetch_row($result_retrieve_by_employee); 
       $empl_id = $emplID[0]; 
     $query_retrieve_by_emplid = "Select * from Maintenance where EmployeeID = '$empl_id'"; 
       $result_retrieve_by_emplid = mysqli_query($dbh, $query_retrieve_by_emplid); 
        while($row1 = mysqli_fetch_array($result_retrieve_by_emplid)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$row1['MemName']."</td> "; 
          echo "<td>".$empl_id."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         } 
      echo "</table>";    
    } 
?> 
+0

您可以嘗試隱藏所有行,然後僅顯示符合所選標準的行。 (我不能理清這麼多的代碼:() – Ejaz 2013-04-09 07:42:56

回答

1

Nass,

我冒昧地爲這個案件做了一個小提琴。 看看它,並問你是否不明白它。

我希望它有幫助。

親切的問候,亞歷克斯

在這個環節,http://jsfiddle.net/QthB6/10/,它的成立在一個乾淨的方式,等等;

function blockify() {  // for style.display = "block" 

} 

function unblockify() { // for style.display = "none" 

} 
1

在第一次嘗試簡化代碼

function check() { 
    var dropdown = document.getElementById("OpType"); 
    var current_value = dropdown.options[dropdown.selectedIndex].value; 
    var aIds = ['operationno', 'MainType', 'MemName', 'EmpName']; 
    for(var i = aIds.length; i>=0; i--) { 
     var ob = document.getElementById(aIds[i]); 
     if(current_value == aIds[i]) { 
      ob.style.display = "block" 
     } 
     else { 
      ob.style.display = "none" 
     } 
    } 

    .... 

    <select id="OpType" onChange="check();"> 
    <option value="blank">Choose</option> 
    <option value="operationno">Operation No</option> 
    <option value="MainType">Operation Type</option> 
    <option value="MemName">Maintenance Member</option> 
    <option value="EmpName">Employee</option> 
    </select> 

    .... 

然後追加「名」 atrtribute您輸入的和選擇的領域。

然後嘗試print_r您的$ _POST數組來查看它的值。