Page 1 of 1

Change form Make - > Model -> Year to Year-> Make -> Model

Posted: Thu Jan 28, 2010 5:56 pm
by thomas80
The following code filters by Make -> Model -> Year . I need to filter by Year -> Make -> Model. Since I am new to php I would appreciate any help.

Kind regards,
tom

Code: Select all

<?php
/*
Written by pektsekye@gmail.com on Saturday Jun 20  2009
version 1.5.0
*/
 
  $Make_Model_Year_query = tep_db_query("select distinct products_car_make, products_car_model, products_car_year_bof, products_car_year_eof from products_ymm where products_car_make != '' and  products_car_model != '' and products_car_year_bof !=0 and products_car_year_eof != 0 order by products_car_make, products_car_model, products_car_year_bof, products_car_year_eof");
  if ($number_of_rows = tep_db_num_rows($Make_Model_Year_query)) {
?>
<!-- year make model //-->
          <tr>
            <td>
<?php
    $info_box_contents = array();
    $info_box_contents[] = array('text'  => '<font color="' . $font_color . '">' . BOX_HEADING_MAKE_MODEL_YEAR . '</font>');
    new infoBoxHeading($info_box_contents, false, false);
 
// Display a drop-down
 
        $Make_array[] = array('id' => 'all', 'text' => 'Choose Vehicle');
        $Model_array[] = array('id' => 'all', 'text' => 'Choose Model');
        $Year_array[] = array('id' => 0, 'text' => 'Choose Year');
 
   $javascript = '<script language="javascript" type="text/javascript">
var a = new Array();
var b = new Array();
var c = new Array();';
 
    $y = array();
    $M_a = array();
    $products_car_make_old = '';
    $products_car_model_old = ''; 
    while ($Makes = tep_db_fetch_array($Make_Model_Year_query)) {
        
            if (!isset($M_a [$Makes['products_car_make']]))
                $Make_array[] = array('id' => $Makes['products_car_make'], 'text' => $Makes['products_car_make']);
 
                        
            if (!isset($M_a [$Makes['products_car_make']][$Makes['products_car_model']]) && count($y) > 0){
                $M_a [$products_car_make_old][$products_car_model_old]=$y;
                $y = array();
            }
            
            if ($Makes['products_car_year_bof'] != 0 && $Makes['products_car_year_eof'] != 0){
                if ($Makes['products_car_year_bof']  == $Makes['products_car_year_eof']){
                    $y [$Makes['products_car_year_bof']] = 1;
                } elseif ($Makes['products_car_year_bof']  < $Makes['products_car_year_eof']){  
                    while ($Makes['products_car_year_bof'] <= $Makes['products_car_year_eof']){
                        $y [$Makes['products_car_year_bof']] = 1;
                        $Makes['products_car_year_bof']++;
                    }
                }
            }
            $products_car_make_old = $Makes['products_car_make'];
            $products_car_model_old = $Makes['products_car_model'];
            $M_a [$Makes['products_car_make']][$Makes['products_car_model']] = array();
    }
 
    $M_a [$products_car_make_old][$products_car_model_old]=$y;
        
 
        
    $i = 0; 
    foreach ($M_a as $k =>$v){
        $javascript .= 'a['.$i.']="'.$k.'";b['.$i.']=new Array(';
            $ii = 0;
            $s = '';
            foreach ($M_a[$k] as $kk =>$vv){
                $javascript .= ($ii != 0 ? ',' : '').'"'.$kk.'"';
                $ss = '';
                $iii = 0;
                foreach ($M_a[$k][$kk] as $kkk => $vvv){
                    $ss .= ($iii != 0 ? ',' : '').$kkk;
                    $iii++;
                }
                if ($iii == 1)
                    $ss = '"'.$ss.'"';
                $s .= 'c['.$i.']['.$ii.']=new Array('.$ss.');';
                $ii++;  
            }
        $javascript .= ');c['.$i.']=new Array();'.$s;   
        $i++;   
    }   
    
      $javascript .= '
function pop_model(){
    
    var o ="<select name=\"Model\" onChange=\"pop_year();\" style=\"width: 100%\"><option value=\"all\">Choose Model</option>"; 
    var sv = document.make_model_year.Make.value;
    if(sv != "all"){
        var v = a.length;
        while(v--) if(sv == a[v]) break;
        for(var i = 0; i < b[v].length; i++)
          o+="<option value=\""+b[v][i]+"\">"+b[v][i]+"</option>";
    }
    o+="</select>";
    document.getElementById("model_select").innerHTML= o;
    document.getElementById("year_select").innerHTML= "<select name=\"Year\" style=\"width: 100%\"><option value=\"0\">Choose Year</option></select>";
}
function pop_year(){
    
    var o ="<select name=\"Year\" style=\"width: 100%\" onChange=\"document.make_model_year.submit();\"><option value=\"0\">Choose Year</option>";
    var sv = document.make_model_year.Make.value;
    if(sv != "all"){
        var v = a.length;
        while(v--) if(sv == a[v]) break;
        var sv2 = document.make_model_year.Model.value;
            if(sv2 != "all"){
                var v2 = b[v].length;
                while(v2--) if(sv2 == b[v][v2]) break;  
                for(var i = 0; i < c[v][v2].length; i++)
                    o+="<option value=\""+c[v][v2][i]+"\">"+c[v][v2][i]+"</option>";
            }
    }
    o+="</select>";
    document.getElementById("year_select").innerHTML= o;
}
</script>';
 
    if (isset($Make_selected_var) && isset($M_a[$Make_selected_var])){
      foreach ($M_a[$Make_selected_var] as $k => $v)
        $Model_array[] = array('id' => $k, 'text' => $k);}
    if (isset($Make_selected_var) && isset($Model_selected_var) && isset($M_a[$Make_selected_var][$Model_selected_var]))
      foreach ($M_a[$Make_selected_var][$Model_selected_var] as $k => $v)
        $Year_array[] = array('id' => $k, 'text' => $k);
        
      $script = basename($_SERVER['SCRIPT_NAME']);
            
        if ($script == 'index.php' && (!isset($cPath)  || $cPath == '')){
            if (defined('FILENAME_ALLPRODS_SEO') && ALL_PRODUCTS_SEO == 'true'){
                $script = FILENAME_ALLPRODS_SEO ;
            } elseif (defined('ALL_PRODUCTS') && ALL_PRODUCTS == 'true'){
                $script = FILENAME_ALLPRODS ;   
            }   
        }
            
    
            
            
      $hidden_get_variables = '';
      $keys = Array('Year','Make','Model',tep_session_name(),'x','y');
 
    if ($script == 'product_info.php'){ 
        if(isset($cPath)  || $cPath != ''){
            $HTTP_GET_VARS['cPath'] = $cPath;
            $link = 'index.php?cPath='.$cPath.'&Make=all&Model=all&Year=0';         
        } else {
            $link = 'index.php?Make=all&Model=all&Year=0';          
        }               
        $action = 'index.php';
        $keys [] = 'products_id';   
    } elseif (SEO_ENABLED == 'true' && basename($PHP_SELF) != FILENAME_ADVANCED_SEARCH_RESULT){
        $action = tep_href_link($script, tep_get_all_get_params(array('Make','Model','Year')), 'NONSSL', false);
        $link = tep_href_link($script, tep_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0', 'NONSSL', false);
        $keys [] = 'cPath';
        $keys [] = 'products_id';   
        $keys [] = 'manufacturers_id';          
    } else {
        $action = $script;          
        $link = $script.'?'.tep_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0';           
    }
        
      reset($HTTP_GET_VARS);
      while (list($key, $value) = each($HTTP_GET_VARS)) {
        if (!in_array($key,$keys)) 
          $hidden_get_variables .= tep_draw_hidden_field($key, $value);
      }     
      
      $info_box_contents = array();
      $info_box_contents[] = array("text"  => $javascript); 
      $info_box_contents[] = array('form' => tep_draw_form('make_model_year', $action, 'get'),
                                   'text' =>  tep_draw_pull_down_menu('Make', $Make_array, (isset($Make_selected_var) ? $Make_selected_var : ''), 'onChange="pop_model();"  style="width: 100%"') .'<br><br>'.
                                    '<span id="model_select">'.tep_draw_pull_down_menu('Model', $Model_array, (isset($Model_selected_var) ? $Model_selected_var : ''), 'onChange="pop_year();" style="width: 100%"') .'</span><br><br>'.
                                    '<span id="year_select">'.tep_draw_pull_down_menu('Year', $Year_array, (isset($Year_selected_var) ? $Year_selected_var : ''), 'onChange="document.make_model_year.submit();" style="width: 100%"') .'</span><br><br>'. 
                                    $hidden_get_variables . tep_hide_session_id() .
                                    '<input type="submit" value="Go">&nbsp;&nbsp;&nbsp;<a href="'.$link.'">Clear Vehicle</a>');
    
 
    new infoBox($info_box_contents);
?>
            </td>
          </tr>
<!-- year make model_eof //-->
<?php
  }
?>