我有以下的情況從另一個窗體添加數據時被擦除:
我已經創建了一個搜索框,允許用戶做一些代碼高級搜索並創建了一個準備好的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