2014-04-02 93 views
0

我希望此选择过滤器只有在语言计数超过4时才会显示。 任何想法?PHP,HTML过滤器

这里是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> 

这里是PHP代码:

if (isset($_GET['date']) && $_GET['date']) { 
    foreach ($training_sessions as $key => $session) { 
     if (date('F', strtotime($session['ZCS_b_date'])) !== $_GET['date']) { 
      unset($training_sessions[$key]); 

让我怎么让它显示出来只有语言数超过4我有语言选择过滤器必须一直呆在那里,但我希望日期过滤器只在语言数超过4时才显示。

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

<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> 

这是语言选择滤波器的PHP代码:

if (isset($_GET['lang']) && $_GET['lang']) { 
    foreach ($training_sessions as $key => $session) { 
     if ($session['training_language'] !== $_GET['lang']) { 
      unset($training_sessions[$key]); 

因此,没有人知道什么IM试图在这里实现?我想做的事。

+0

没人能帮助我吗? ( – user3480148

+0

)我应该如何使用PHP如果计数?我应该怎么做? – user3480148

回答

0

确定这里,我们去..
如果你想这应该给你你想要

<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> 

我要编辑出来的意见,使其更具可读性...
结果查看评论回顾这个回答的编辑

+0

嗯,我会尝试你的代码。我怎么解释它。例如我有一个表与人名,语言他们知道,他们做的工作,和当他们开始这样做的时候,我有下拉式过滤器来处理他们知道的语言,我想要做的是,当有4个以上的人知道英语时,我希望有一个新的过滤器可以按月过滤。我试图弄清楚这一点。你现在明白我在这里做什么了吗? – user3480148

+0

这使得更多的意义......我会稍后编辑我的答案当我有机会 – Swayze

+0

非常感谢,会是病人:) :) – user3480148