我有一个员工表,我需要能够执行搜索功能,但是当我实现该功能时,我被迫为结果创建另一个页面,所以我从原始页面复制了填充表格代码,它工作得很好,除了我在表的外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..' ;
}
}
搜索页面中的表格按钮无效。 (表格的最后三列 - 按钮 - 并非正常工作)。
答案 0 :(得分:1)
<强>解决方案:强>
只需在结果页上的表单中添加隐藏的输入字段。
<input type="hidden" name="search-btn" value="Search">
现在,由于您没有处理该字段,因此该值无关紧要。
<强>阐释:强>
在结果页面上,您在第一行检查POST
字段search-btn
,如果找不到,则会跳过整个代码块。
现在您的搜索结果页似乎有效,因为发布请求的表单 名为search-btn
的输入字段,因此工作正常。
但是当您尝试点击搜索结果中的按钮时,数据会从本身发布到本身,即。没有添加额外的数据。由于您没有那个形式的search-btn
字段,代码正在跳过您编写的逻辑块,只显示一个空白页。