php 提交表单并使用一个字段搜索其他3个按钮后,如何在浏览器中保存或保留信息/状态

qgelzfjb  于 2023-01-24  发布在  PHP
关注(0)|答案(2)|浏览(87)

在我的代码中,我首先使用picklist进行筛选,用户可以选择一个或多个选项,然后提交,一个或多个事件将从数据库中筛选出来以显示信息。然后用户可以在搜索字段中键入日期,并使用按钮=、〈、〉相应地显示带有日期的事件。我使用PHP、MYSQLHTML。现在我希望当用户按下按钮=,〉时,显示该日期的事件(我已经做了),但是当用户继续添加另一个日期〈例如,两个事件都显示,第一个没有被删除。所以我想得到日期之间的事件,所以不管用户输入保留了什么过滤器,当用户按下另一个按钮时,都不要重置它。我可以用PHP或JS来做这件事吗?下面是我的输入和按钮

<input type= "submit" name="submit" value="Select option" /> 
 <input type="text" name="search"   placeholder="Search Date">
 <button type="submit" name="equal" title="Equal to this date">=</button>
 <button type="submit" name="smaller" title="Less than this date"><</button>
 <button type="submit" name="bigger" title="Greater than this date">></button>

这是等于一个值的日期药丸

<?php
  if(isset($_POST['events']) && isset($_POST['equal']) &&                !empty($_POST['search'])) 
{
?>
<span class="slds-pill slds-pill_link" id="myP" >
<a href="#" class="slds-pill__action" title="">
<span class="slds-pill__label"  >

<input type="hidden" name="condition" value="<?php echo $_POST['search']; ?>" >  
<?php
  {
    echo "=". $_POST['search'];
  }
?>
<script>
 function myFunct() 
 {
    document.getElementById("myP").style.display = "none";
 }
</script>

</span>
</a>
<button class="slds-button slds-button_icon slds-button_icon  slds-pill__remove" title="Remove" type="button" onclick="myFunct()">
<svg class="slds-button__icon" aria-hidden="true">
 <use xlink:href="/assets/icons/utility-sprite /svg/symbols.svg#close"></use>
</svg>
 <span class="slds-assistive-text">Remove</span>
 </button>
</span>
eufgjt7s

eufgjt7s1#

你不能用javascript做到这一点,你需要在php的帮助下保持你的搜索条件与会话

if(isset($_POST['equal'])){ 
$_SESSION["timer"]=array("date"=>$date,"type"=>$type);
//code continuation
}

在第一个查询之后,可以将其移动到要使用的页面的顶部

if(isset($_SESSION['timer']) && $_SESSION['timer']){
//Query with data saved in session
}else{
//we can make default definition or blank output
}

附加方法(您可以保留所有数据,而不是保留数据的条件,但这将强制浏览器。

$g=DB::getRow('SELECT * FROM datas WHERE date=?',array($unixDate));
if($g){$_SEESION["selectData"]=$g;}

注:不建议使用日期查询进行搜索,相反,发送带有数值的大型和小型查询对于性能非常重要。
保存数据时翻转日期

$tmspDate  = date("Y-m-d H:i:s");
$unixDate  = strtotime($tmsptarih);

在列表查询中,保持日期格式仅包含数值非常重要
在你的查询中只使用〉或〈就足够了,为此你只需要获取unix的当前日期和查询

DB::getRow('SELECT date FROM data WHERE date > ?',array($unixDate));
nr9pn0ug

nr9pn0ug2#

//它是这样开始的
这是选择的选择列表部分,另一部分用于按钮

if(isset($_SESSION['events'])) 
   {

     $typechecked = [];
     $typechecked =$_SESSION['events'];
     foreach ($typechecked as $checked) 
      {

     $event = "SELECT * FROM activitytimeline WHERE type IN ('$checked')";

     if(!empty($_SESSION['search']))
     {
      if(isset($_SESSION['equal'])) 
       {
      $search = mysqli_real_escape_string($conn,$_SESSION['search']);
      $event .= " AND DATE(date) = '$search' ";
     }

     if(isset($_SESSION['bigger'])) 
     {
       $search = mysqli_real_escape_string($conn, $_SESSION['search']);
       $event .= " AND date > '$search'";  

      }

相关问题