我有以下的情况从另一个窗体添加数据时被擦除:
我已经创建了一个搜索框,允许用户做一些代码高级搜索并创建了一个准备好的mysql语句。表单目标是相同的页面。
我还创建了另一个允许排序的表单。表单目标是相同的页面。
问题是,如果我搜索某些东西然后对数据进行排序,它会回到默认查询(没有在搜索框上设置参数),因此它会对整个数据进行排序。
他们工作完美孤立,但我很想让他们一起工作,我真的不知道如何。
下面是搜索框的PHP代码和排序:
<?php
require 'connect.php';
if(isset($_POST['cauta'])){
$cauta=$_POST['cauta'];}
$clause = " WHERE ";
$query1="SELECT nume, prenume, email, functie, denumire FROM contacte_companii cc LEFT JOIN companii c
ON cc.com_id=c.id";
if(isset($_POST['submit'])){
if(isset($_POST['keyword'])){
foreach($_POST['keyword'] as $c){
if(!empty($c)){
$base_query=$query1 .= $clause." ".$c." LIKE '%".$cauta."%'";//
$clause = " OR ";//Change to OR after 1st WHERE
}
}
}
echo $base_query;
}
else {
$base_query="SELECT nume, prenume, email, functie, denumire FROM contacte_companii cc
LEFT JOIN companii c
ON cc.com_id=c.id";
echo $base_query;
}
?>
if(isset($_POST['ASC'])){
$query = $base_query . " ORDER BY prenume ASC"
;
}
// Descending Order
elseif (isset ($_POST['DESC'])) {
$query = $base_query . " ORDER BY prenume DESC";
}
else {
$query = $base_query;
}
$result=$db->query($query);
// Associative arrays of strings - for each row - stops at NULL;
while($row=$result->fetch_assoc())
{
?>
<tr>
<td><?php echo $row["prenume"]. " " .$row["nume"]; ?></td>
<td><?php echo $row["email"]; ?></td>
<td><?php echo $row["functie"]; ?></td>
<td><?php echo $row["denumire"]; ?></td>
</tr>
<?php
}
$db->close();
?>
下面是搜索框形式:
<form action="<?PHP echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<input type="checkbox" name="keyword[]" value="nume" checked> Nume
<input type="checkbox" name="keyword[]" value="prenume" checked> Prenume
<input type="checkbox" name="keyword[]" checked value="email"> Email
<input type="checkbox" name="keyword[]" value="denumire"> Companie
<input type="checkbox" name="keyword[]" value="telefon_b"> Telefon
<input type="checkbox" name="keyword[]" hidden value="telefon_m">
<input type="text" name="cauta">
<input type="submit" name="submit" value="Cauta">
</form>
这里是排序按钮看起来像在HTML:
<form action="<?PHP echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
th>Nume <button class="btn" type="submit" name="ASC" >
<img src="icons\09.png" width="20" height="20" style="margin:3.5px 3px" align="right"/>
</button></th>
</form>
难道你不能把两者结合成一个单一的形式吗?你的代码有点难以阅读,但我猜你的问题源于你在第二个表单上丢失了初始表单的POST数据 – georaldc