Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP、HTML过滤器_Php_Html_Select - Fatal编程技术网

PHP、HTML过滤器

PHP、HTML过滤器,php,html,select,Php,Html,Select,我希望仅当语言计数大于4时才显示此选择筛选器 有什么想法吗 以下是html选择过滤器代码: <p> Select date: </p> <form method="get" action=""> <select id="training_session" name="date"onchange=this.form.submit()> <option value=""<?php if($_GET['date'] === '') echo

我希望仅当语言计数大于4时才显示此选择筛选器 有什么想法吗

以下是html选择过滤器代码:

<p>
Select date:
</p>
<form method="get" action="">
<select id="training_session" name="date"onchange=this.form.submit()>
<option value=""<?php if($_GET['date'] === '') echo 'selected' ?>>[All dates]</option>
<option value="April"<?php if($_GET['date'] === 'April') echo 'selected' ?>>April</option>
<option value="May"<?php if($_GET['date'] === 'May') echo 'selected' ?>>May</option>
<option value="June"<?php if($_GET['date'] === 'June') echo 'selected' ?>>June</option>
<option value="July"<?php if($_GET['date'] === 'July') echo 'selected' ?>>July</option>
<option value="August"<?php if($_GET['date'] === 'August') echo 'selected' ?>>August</option>
<option value="September"<?php if($_GET['date'] === 'September') echo 'selected' ?>>September</option>
<option value="October"<?php if($_GET['date'] === 'October') echo 'selected' ?>>October</option>
<option value="November"<?php if($_GET['date'] === 'November') echo 'selected' ?>>November</option>
</form>
<noscript><input type="hidden" value="filter"></noscript>
<p>
Select language:
</p>

<form method="get" action="">
<select id="training_session" name="lang" onchange=this.form.submit()>
<option value=""<?php if($_GET['lang'] === '') echo 'selected' ?>>[All languages]</option>
<option value="English" <?php if($_GET['lang'] === 'English') echo 'selected' ?>>English</option>
<option value="Portuguese"<?php if($_GET['lang'] === 'Portuguese') echo 'selected' ?>>Portuguese</option>
<option value="French"<?php if($_GET['lang'] === 'French') echo 'selected' ?>>French</option>
<option value="Italian"<?php if($_GET['lang'] === 'Italian') echo 'selected' ?>>Italian</option>
<option value="Japanese"<?php if($_GET['lang'] === 'Japanese') echo 'selected' ?>>Japanese</option>
</form>
<noscript><input type="hidden" value="filter"></noscript>
那么,我如何使其仅在语言计数大于4时显示呢。我有语言选择过滤器,它必须一直保持在那里,但我希望只有当语言计数大于4时,日期过滤器才会显示

这是语言选择过滤器代码:

<p>
Select date:
</p>
<form method="get" action="">
<select id="training_session" name="date"onchange=this.form.submit()>
<option value=""<?php if($_GET['date'] === '') echo 'selected' ?>>[All dates]</option>
<option value="April"<?php if($_GET['date'] === 'April') echo 'selected' ?>>April</option>
<option value="May"<?php if($_GET['date'] === 'May') echo 'selected' ?>>May</option>
<option value="June"<?php if($_GET['date'] === 'June') echo 'selected' ?>>June</option>
<option value="July"<?php if($_GET['date'] === 'July') echo 'selected' ?>>July</option>
<option value="August"<?php if($_GET['date'] === 'August') echo 'selected' ?>>August</option>
<option value="September"<?php if($_GET['date'] === 'September') echo 'selected' ?>>September</option>
<option value="October"<?php if($_GET['date'] === 'October') echo 'selected' ?>>October</option>
<option value="November"<?php if($_GET['date'] === 'November') echo 'selected' ?>>November</option>
</form>
<noscript><input type="hidden" value="filter"></noscript>
<p>
Select language:
</p>

<form method="get" action="">
<select id="training_session" name="lang" onchange=this.form.submit()>
<option value=""<?php if($_GET['lang'] === '') echo 'selected' ?>>[All languages]</option>
<option value="English" <?php if($_GET['lang'] === 'English') echo 'selected' ?>>English</option>
<option value="Portuguese"<?php if($_GET['lang'] === 'Portuguese') echo 'selected' ?>>Portuguese</option>
<option value="French"<?php if($_GET['lang'] === 'French') echo 'selected' ?>>French</option>
<option value="Italian"<?php if($_GET['lang'] === 'Italian') echo 'selected' ?>>Italian</option>
<option value="Japanese"<?php if($_GET['lang'] === 'Japanese') echo 'selected' ?>>Japanese</option>
</form>
<noscript><input type="hidden" value="filter"></noscript>
那么,有人知道我在这里想要实现什么吗?我想做什么。

好了,我们开始吧。
这会给你想要的结果

<html>

<head></head>

<body>

   <form id="submitquery" method="get" action="">

   <?php

      $month=array('[All Dates]','January','February','March','April',
                   'May','June','July','August',
                   'September','October','November','December');

      $language=array('[All Languages]','English','Portuguese','French','Italian','Japanese');

      $changeLanguagejs='changeForm();';
      $changeDatejs='this.form.submit();';

      writeSelect($language,'Language',$changeLanguagejs); 

      if (isset($_GET['Language'])){        
         if($_GET['Language']!='[All Languages]'){
            $training_sessions=filterLanguage($training_sessions);}

      if (count($training_sessions)>=4){
         writeSelect($month,'Date',$changeDatejs);
         if (isset($_GET['Date'])){
            if($_GET['Date']!='[All Dates]'){
               $training_sessions=filterDate($training_sessions);}
         showResults($training_sessions);}}
      else{showResults($training_sessions);}}

   ?>

   </form>

</body>

</html>

<?php

   function writeSelect($values,$name,$changejs){
      echo "\n".'<p>Select '.$name.':</p>';
      echo "\n".'   <select id="training_sessions_'.$name.'" name="'.$name.'"  onchange='.$changejs.'>'."\n";
      foreach($values as $value){               
         echo '      <option value="'.$value.'" ';              
         if (isset($_GET[$name]) && $_GET[$name]==$value){echo 'selected ';}
         echo '>'.$value.'</option>'."\n";}
      echo '   </select><br/><br/>'."\n";} 

   function filterLanguage($training_sessions){
      foreach($training_sessions as $key => $session){
         if($session['training_language']!=$_GET['Language']){
            unset($training_sessions[$key]);}}
      return $training_sessions;}

   function filterDate($training_sessions){
      foreach($training_sessions as $key => $session){
         if(date('F', strtotime($session['ZCS_b_date']))!=$_GET['Date']){
            unset($training_sessions[$key]);}}
      return $training_sessions;}

   function showResults($training_sessions){
      echo "\n".'Showing '.count($training_sessions).' ';
      if(count($training_sessions)==1){echo 'Result';}
      else{echo 'Results';}
      echo'<br/>'."\n\n";
      print_r($training_sessions);}

?>

<script>

   function changeForm(){
      var selectLang = document.getElementById("training_sessions_Language").value;
      document.getElementById("submitquery").method="post";
      document.getElementById("submitquery").action="?Language="+selectLang;
      document.getElementById("submitquery").submit();}

</script>

函数changeForm(){
var selectLang=document.getElementById(“培训课程语言”).value;
document.getElementById(“submitquery”).method=“post”;
document.getElementById(“submitquery”).action=“?Language=“+selectLang;
document.getElementById(“submitquery”).submit();}
我将编辑这些评论,使其更具可读性…

如果您想通过编辑此答案查看评论返回

没有人可以帮助我吗(如果计数,我应该使用php吗?我应该怎么做?嗯,我会试试你的代码。我该如何解释它。例如,我有一个表,上面有人名,他们知道的语言,他们做的工作,以及他们开始做这件事的一个月。我有他们知道的语言的下拉过滤器。我想做的是,当有4个以上的人懂英语的时候e、 我希望出现一个新的过滤器,可以按月过滤。我想弄清楚这一点有一段时间了。你现在明白我在这里想做什么了吗?这更有意义…我会在以后有机会时编辑我的答案。谢谢,耐心点。:)这应该可以做到。。如果我误解了,请告诉我,或者你需要进一步的帮助。谢谢,我明天会测试。如果有效的话,我会回复你的。:)