gpt4 book ai didi

php - 从另一个表单添加数据时,在同一页面上提交数据的 $_POST/$_GET 会被删除

转载 作者:行者123 更新时间:2023-11-29 20:20:15 25 4
gpt4 key购买 nike

我有以下情况:

我为搜索框创建了一个代码,允许用户进行一些高级搜索并创建了一个准备好的 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>

最佳答案

这不是一个完美的解决方案,但您可以在第二个表单中添加尽可能多的隐藏输入,然后通过关键字进行测试

<form action="<?PHP echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">

<input type="hidden" name="keyword[]" value=<? echo $_POST['Num'];?> >
<input type="hidden" name="keyword[]" value=<? echo $_POST['prenume'];?> >
<input type="hidden" name="keyword[]" value=<? echo $_POST['Email'];?> >
<input type="hidden" name="keyword[]" value=<? echo $_POST['Companie'];?> >
<input type="hidden" name="keyword[]" value=<? echo $_POST['Telefon'];?> >

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>

关于php - 从另一个表单添加数据时,在同一页面上提交数据的 $_POST/$_GET 会被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39540139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com