php搜索结果表并不像原始表一样

时间:2018-06-12 09:24:12

标签: javascript php mysql search web

我有一个员工表,我需要能够执行搜索功能,但是当我实现该功能时,我被迫为结果创建另一个页面,所以我从原始页面复制了填充表格代码,它工作得很好,除了我在表的外3列添加按钮,这些只适用于原始表(在那里工作完美),但当我尝试使用结果页面中的按钮时,我得到一个只有我的空白页没有任何输出的html + css设计,虽然我有为每个案例指定的输出 - 像PHP代码一样,甚至没有运行 -

注意: 邮件请求不是问题,因为它们是问题,页面实际上根本没有做任何事情(这是在那时预期的)。

我将添加一个链接,其中包含我的页面php文件供任何人查看,如果需要更多信息,我将可用:)

https://drive.google.com/drive/folders/17wWScailbySmSpUPCuHDdgIur74VAp1d?usp=sharing

employee.php文件使用相同的代码,除了它调用每个员工而不是其中一些员工。

我尝试添加与此更相关的employee.php代码,但有人说不需要它。

调用此代码的表单存在于employee.php文件中,并且

<form action="searchEmp.php" method="post"> 
    <input type="text" name="search" value="">
    <input type="submit" name="search-btn" value="Search">
</form>

这是员工搜索的代码(有问题)::

    if(isset($_POST['search-btn'])) {
        //  echo 'search btn pressed ';

         $search = mysqli_real_escape_string($con , $_POST['search']);
        // echo 'looking for : ' . $search ; 
         $sql =  "select * from employees where emp_fname like '%$search%' or emp_lname like '%$search%' or emp_email like '%$search%' or idNumber = '$search' or emp_phonenumber = '$search' " ; 
         $result = mysqli_query($con , $sql);
        //     echo 'result : ' . $result ; 
         $queryResult  = mysqli_num_rows($result);
        //   echo 'result : ' . $queryResult; 
         if($queryResult > 0 ){
        //    echo 'more than 0 results...' ;
        echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
        echo '<div class="table_" align="center">' ; 
        echo '<table style="font-family: arial; font-size: 15px;" border="1" cellpadding="1" align="center">';
        echo '<tr bgcolor="#009933">
                <th><b>ID</b></th>
                <th><b>First Name</b></th>
                <th><b>Last Name</b></th>
                <th><b>Phone Number</b></th>
                <th><b>Email</b></th>
                <th><b>Salary</b></th>
                <th><b>Status</b></th>
               </tr>';
            $i = 0 ;
        while($row =mysqli_fetch_assoc($result)){
            echo '<tr>' ;

            echo '<td>'.'<input type="text" name="id'.$i.'" value="'.$row['emp_id'].'"/> '.'</td>';


            echo '<td>'.'<input type="text" name="fname'.$i.'" value="'.$row['emp_fname'].'" />'.'</td>';


            echo '<td>'.'<input type="text" name="lname'.$i.'" value="'.$row['emp_lname'].'" />'.'</td>';


            echo '<td>'.'<input type="text" name="phone_number'.$i.'" value="'.$row['emp_phonenumber'].'" >'.'</td>';


            echo '<td>'.'<input type="text" name="email'.$i.'" value="'.$row['emp_email'].'"/> '.'</td>';


            echo '<td>'.'<input type="text" name="salary'.$i.'" value="'.$row['emp_salary'].'"/> '.'</td>';


            echo '<td>'.'<input type="text" name="status'.$i.'" value="'.$row['emp_status'].'" />'.'</td>';

            echo '<td> <input type="submit" name="update_btn'.$i.'" value="update"/> ';

            echo '<td> <input type="submit" name="profile_btn'.$i.'" value="profile"/> ';

            if(isset($_POST['profile_btn'.$i])){
                // the profile btn has been pressed..
                ob_end_clean(); 
               $id = $_POST['id'.$i] ; 
               header("Location: profile.php?id=".$id) ;
               exit(); 
              //  printf("Location : " .$i) ;
               }


            if(isset($_POST['update_btn'.$i])){
                if(isset($_POST['check'.$i])){
                    $id = $_POST['id'.$i];
                    $fname  = $_POST['fname'.$i] ;
                    $lname = $_POST['lname'.$i];
                    $phone_number =  $_POST['phone_number'.$i];
                    $email = $_POST['email'.$i];
                    $salary =$_POST['salary'.$i] ;
                    $status =$_POST['status'.$i];

                    $updateStatus = "update employees set emp_fname ='$fname' , emp_lname='$lname' ,emp_phonenumber='$phone_number', emp_email='$email', emp_salary='$salary', emp_status='$status' WHERE emp_id = '$id' " ;

                    $qry = mysqli_query($con,$updateStatus);
                    if(!$qry){
                        echo 'failed to update...';
                    }else{
                        header("Location: employee.php");
                    }

                }else{
                    echo'please activate the update modification options using the tick' ;
                }
            }

            echo  '</td>';
            echo '<td>';
            echo ' <input type="submit" name="delete'.$i.'" value="delete"/> ';
            if(isset($_POST['delete'.$i])){
             if($_POST['check'.$i]){

                 $id = $_POST['id'.$i];

                 $delete = "delete from employees where emp_id = '$id'";
                 $query = mysqli_query($con,$delete);
                 if(!$query){
                     echo'delete failed';
                 }else{
                     header("Location: employee.php");
                 }

             }else{
            echo'please activate the check modify the data' ;
             } 
            }
            echo '</td>';

            echo '<td>' ;
            echo '<input type="Checkbox" name="check'.$i.'"  />' ;
            echo '</td>' ;

            echo'</tr>';
            $i++;
        }   

            echo '</table>';
            echo '</div>' ;
            echo '</form>' ;

         } else{
            echo 'no results..' ; 
         } 
    }

搜索页面中的表格按钮无效。 (表格的最后三列 - 按钮 - 并非正常工作)。

1 个答案:

答案 0 :(得分:1)

<强>解决方案:

只需在结果页上的表单中添加隐藏的输入字段。

<input type="hidden" name="search-btn" value="Search">

现在,由于您没有处理该字段,因此该值无关紧要。

<强>阐释:

在结果页面上,您在第一行检查POST字段search-btn,如果找不到,则会跳过整个代码块。

现在您的搜索结果页似乎有效,因为发布请求的表单 名为search-btn的输入字段,因此工作正常。

但是当您尝试点击搜索结果中的按钮时,数据会本身发布到本身,即。没有添加额外的数据。由于您没有那个形式的search-btn字段,代码正在跳过您编写的逻辑块,只显示一个空白页。