我有一个员工表,我需要能够执行搜索功能,但是当我实现这个函数时,我被迫为结果创建另一个页面,所以我从原始页面复制了populate table代码,它工作得很好,只是我在表的外部3列中添加了按钮,这些按钮只在原始表中工作(在那里工作得很好),但是当我尝试使用结果页面中的按钮时,我会得到一个空白页面,上面只有我的html+css设计,没有任何输出,即使我为每个案例指定了一个输出-就像php代码没有运行一样-
注意:post请求不是问题,因为当它们是问题时,页面实际上什么都没有做(这是当时它所期望的)。
我将添加一个链接poth my pages php文件供任何人查看,如果需要更多信息,我将随时提供:)
https://drive.google.com/drive/folders/17wwscailbysmspupcuhddgiur74vap1d?usp=sharing
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条答案
按热度按时间kb5ga3dv1#
解决方案:
只需在结果页的表单中添加一个隐藏的输入字段。
现在,由于您不处理该字段,因此值无关紧要。
说明:
在结果页面的第一行,您正在检查
POST
字段search-btn
如果找不到,则跳过整个代码块。现在您的搜索结果页似乎可以工作了,因为发布请求的表单有一个名为
search-btn
所以效果不错。但是当你试图从搜索结果中点击这个按钮时,数据会从它自己传递到它自己,也就是说,不会添加额外的数据。既然你没有命名这个字段
search-btn
在这种形式下,代码跳过了您编写的逻辑块,只显示一个空白页。