Как сделать выпадающий список активным??

Тема в разделе "VirtueMart", создана пользователем Skomoroh, 03.04.2011.

  1. Offline

    Skomoroh Недавно здесь

    Регистрация:
    08.01.2011
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Есть готовый фильтр товаров. Как сделать так, чтоб при выборе одного из типов не надо было нажимать кнопку "поиск", чтоб товар сразу выводился по выбронаму параметру???
    Вот код фильтра:
    Код (PHP):
    1. <?php
    2. if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
    3. /**
    4. * Virtuemart Product Filter Module
    5. *
    6. * @version $Id: mod_vm_product_filter.php 1109 2010-12-10 10:30:30Z webgobe $
    7. * @package VirtueMart
    8. * @subpackage modules
    9. *
    10. * @copyright (C) 2004-2007 soeren - All Rights reserved.
    11. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
    12. * VirtueMart is Free Software.
    13. * VirtueMart comes with absolute no warranty.
    14. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
    15. *
    16. * www.virtuemart.net
    17. */
    18.  
    19. // Load the virtuemart main parse code
    20.  
    21. global $mosConfig_absolute_path, $sess, $VM_LANG;
    22. // Load the virtuemart main parse code
    23. if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
    24.     require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
    25. } else {
    26.     require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
    27. }
    28. $sess = new ps_session;
    29. $text_before            = $params->get( 'text_before', '');
    30. $product_type_id= $params->get( 'product_type_id', 1);
    31. $current_url    = vmGet( $_SERVER, 'REQUEST_URI', '' );
    32. $shopItemid     = $sess->getShopItemid();
    33. $Itemid         = $params->get( 'Itemid', $shopItemid);
    34. $db = new ps_DB;
    35. $q  = "SELECT * FROM #__{vm}_product_type ";
    36. $q .= "WHERE product_type_id='$product_type_id' ";
    37. $q .= "AND product_type_publish='Y'";
    38. $db->query($q);
    39.  
    40. $browsepage = $db->f("product_type_browsepage");
    41. echo $text_before;
    42. if (!$db->next_record()) { // There is no published Product Type
    43.         echo $VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_BAD_PRODUCT_TYPE');
    44. } else {
    45.         echo $VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IN_CATEGORY').": ".$db->f("product_type_name");
    46.        
    47. ?>
    48. <form action="<?php echo URL ?>index.php" method="post" name="attr_search" >
    49. <input type="hidden" name="option" value="com_virtuemart"\n />
    50. <input type="hidden" name="page" value="shop.browse" />
    51. <input type="hidden" name="product_type_id" value="<?php echo $product_type_id ?>" />
    52. <input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
    53. <?php
    54.     $q  = "SELECT * FROM #__{vm}_product_type_parameter ";
    55.     $q .= "WHERE product_type_id=$product_type_id ";
    56.     $q .= "ORDER BY parameter_list_order";
    57.     $db->query($q);
    58.     ?>
    59.    
    60.     <?php
    61.     if (!empty($browsepage)) { // show browsepage
    62.         /**
    63.         *   Read the template file into a String variable.
    64.         *
    65.         * function read_file( $file, $defaultfile='') ***/
    66.         $template = read_file( PAGEPATH."templates/".$browsepage.".php");
    67.         //$template = str_replace( "{product_type_id}", $product_type_id, $template );  // If you need this, use it...
    68.         while ($db->next_record()) {
    69.             $item_name = "product_type_$product_type_id"."_".$db->f("parameter_name");
    70.             $parameter_values=$db->f("parameter_values");
    71.             $get_item_value = vmGet($_REQUEST, $item_name, "");
    72.             $get_item_value_comp = vmGet($_REQUEST, $item_name."_comp", "");
    73.             $parameter_type = $db->f("parameter_type");
    74.            
    75.             // Replace parameter value
    76.             $template = str_replace( "{".$item_name."_value}", $get_item_value, $template );
    77.                
    78.             // comparison
    79.             if (!empty($parameter_values) && $db->f("parameter_multiselect")=="Y") {
    80.                 if ($parameter_type == "V") { // type: Multiple Values
    81.                     // Multiple section List of values - comparison FIND_IN_SET
    82.                     $comp  = "<td>\n";
    83.                     $comp .= "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    84.                     $comp .= "<option value=\"find_in_set_all\"".(($get_item_value_comp=="find_in_set_all")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FIND_IN_SET_ALL')."</option>\n";
    85.                     $comp .= "<option value=\"find_in_set_any\"".(($get_item_value_comp=="find_in_set_any")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FIND_IN_SET_ANY')."</option>\n";
    86.                     $comp .= "</select></td>";
    87.                 }
    88.                 else { // type: all other
    89.                     // Multiple section List of values - no comparison
    90.                     $comp = "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"in\" />\n</td>\n";
    91.                 }
    92.             }
    93.             else {
    94.                 switch( $parameter_type ) {
    95.                     case "C": // Char
    96.                         if (!empty($parameter_values)) { // List of values - no comparison
    97.                             $comp = "<input type=\"hidden\" name=\"".$item_name."_comp\" value=\"eq\" />\n";
    98.                             break;
    99.                         }
    100.                    
    101.                         $comp  = "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    102.                         $comp .= "<option value=\"lt\"".(($get_item_value_comp=="lt")?" selected":"").">&lt;</option>\n";
    103.                         $comp .= "<option value=\"le\"".(($get_item_value_comp=="le")?" selected":"").">&lt;=</option>\n";
    104.                         $comp .= "<option value=\"eq\"".(($get_item_value_comp=="eq")?" selected":"").">=</option>\n";
    105.                         $comp .= "<option value=\"ge\"".((empty($get_item_value_comp)||$get_item_value_comp=="ge")?" selected":"").">&gt;=</option>\n";
    106.                         $comp .= "<option value=\"gt\"".(($get_item_value_comp=="gt")?" selected":"").">&gt;</option>\n";
    107.                         $comp .= "<option value=\"ne\"".(($get_item_value_comp=="ne")?" selected":"").">&lt;&gt;</option>\n";
    108.                         $comp .= "</select>\n";
    109.                         break;
    110.                     case "T": // Text
    111.                         if (!empty($parameter_values)) { // List of values - no comparison
    112.                             $comp = "<input type=\"hidden\" name=\"".$item_name."_comp\" value=\"texteq\" />\n";
    113.                             break;
    114.                         }
    115.                         $comp  = "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    116.                         $comp .= "<option value=\"like\"".(($get_item_value_comp=="like")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_LIKE')."</option>\n";
    117.                         $comp .= "<option value=\"notlike\"".(($get_item_value_comp=="notlike")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_NOT_LIKE')."</option>\n";
    118.                         $comp .= "<option value=\"fulltext\"".(($get_item_value_comp=="fulltext")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FULLTEXT')."</option>\n";
    119.                         $comp .= "</select>";
    120.                         break;
    121.                     case "S": // Short Text
    122.                     default:  // Default type Short Text
    123.                         if (!empty($parameter_values)) { // List of values - no comparison
    124.                             $comp = "<input type=\"hidden\" name=\"".$item_name."_comp\" value=\"texteq\" />\n";
    125.                             break;
    126.                         }
    127.                         $comp  = "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    128.                         $comp .= "<option value=\"like\"".(($get_item_value_comp=="like")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_LIKE')."</option>\n";
    129.                         $comp .= "<option value=\"notlike\"".(($get_item_value_comp=="notlike")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_NOT_LIKE')."</option>\n";
    130.                         $comp .= "</select></td>";
    131.                 }
    132.             }
    133.             // Relace parameter comparison
    134.             $template = str_replace( "{".$item_name."_comp}", $comp, $template );
    135.            
    136.             // Parameter field
    137.             if (!empty($parameter_values)) { // List of values
    138.                 $fields=explode(";",$parameter_values);
    139.                 $attr = "<select class=\"styled\" name=\"$item_name";
    140.                 if ($db->f("parameter_multiselect")=="Y") {
    141.                     $size = min(count($fields),6);
    142.                     $attr .= "[]\" multiple size=\"$size\">\n";
    143.                     $selected_value = array();
    144.                     $get_item_value = vmGet($_REQUEST, $item_name, array());
    145.                     foreach($get_item_value as $value) {
    146.                         $selected_value[$value] = 1;
    147.                     }
    148.                     foreach($fields as $field) {
    149.                         $attr .= "<option value=\"$field\"".(($selected_value[$field]==1) ? " selected>" : ">"). $field."</option>\n";
    150.                     }
    151.                 }
    152.                 else {
    153.                     $attr .= "\">\n";
    154.                     $attr .= "<option value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."</option>\n";
    155.                     foreach($fields as $field) {
    156.                         $attr .= "<option value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."</option>\n";
    157.                     }
    158.                 }
    159.                 $attr .= "</select>";
    160.             }
    161.             else { // Input field                  
    162.                 switch( $parameter_type ) {
    163.                     case "I": // Integer
    164.                     case "F": // Float
    165.                     case "D": // Date & Time
    166.                     case "A": // Date
    167.                     case "M": // Time
    168.                         $attr = "<input type=\"text\" class=\"styled\"  name=\"$item_name\" value=\"$get_item_value\" size=\"20\" />";
    169.                         break;
    170.                     case "T": // Text
    171.                         $attr = "<textarea class=\"styled\" name=\"$item_name\" cols=\"35\" rows=\"6\" >$get_item_value</textarea>";
    172.                         break;
    173.                     case "C": // Char
    174.                         $attr = "<input type=\"text\" class=\"styled\"  name=\"$item_name\" value=\"$get_item_value\" size=\"5\" />";
    175.                         break;
    176.                     case "S": // Short Text
    177.                     default: // Default type Short Text
    178.                         $attr = "<input type=\"text\" class=\"styled\" name=\"$item_name\" value=\"$get_item_value\" size=\"50\" />";
    179.                 }
    180.             }
    181.             // Relace parameter
    182.             $template = str_replace( "{".$item_name."}", $attr, $template );
    183.         }
    184.         echo $template;
    185.     }
    186.     else { // show default list of parameters
    187.        
    188.         while ($db->next_record()) {
    189.             $parameter_type = $db->f("parameter_type");
    190.             if ($parameter_type!="B") {
    191.                
    192.                 echo "<tr valign=\"top\">\n  <td   ><strong>";
    193.                 echo $db->f("parameter_label");
    194.                 echo "&nbsp;:</strong>\n  </td>\n";
    195.                
    196.                 $parameter_values=$db->f("parameter_values");
    197.                 $item_name = "product_type_$product_type_id"."_".$db->f("parameter_name");
    198.                 $get_item_value = vmGet($_REQUEST, $item_name, "");
    199.                 $get_item_value_comp = vmGet($_REQUEST, $item_name."_comp", "");
    200.                
    201.                 // comparison
    202.                 if (!empty($parameter_values) && $db->f("parameter_multiselect")=="Y") {
    203.                     if ($parameter_type == "V") { // type: Multiple Values
    204.                         // Multiple section List of values - comparison FIND_IN_SET
    205.                         echo "<td >\n";
    206.                         echo "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    207.                         echo "<option value=\"find_in_set_all\"".(($get_item_value_comp=="find_in_set_all")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FIND_IN_SET_ALL')."</option>\n";
    208.                         echo "<option value=\"find_in_set_any\"".(($get_item_value_comp=="find_in_set_any")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FIND_IN_SET_ANY')."</option>\n";
    209.                         echo "</select></td>";
    210.                     }
    211.                     else { // type: all other
    212.                         // Multiple section List of values - no comparison
    213.                         echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"in\" />\n</td>\n";
    214.                     }
    215.                 }
    216.                 else {
    217.                     switch( $parameter_type ) {
    218.                         case "C": // Char
    219.                             if (!empty($parameter_values)) { // List of values - no comparison
    220.                                 echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"eq\" />\n</td>\n";
    221.                                 break;
    222.                             }
    223.                         case "I": // Integer
    224.                         case "F": // Float
    225.                         case "D": // Date & Time
    226.                         case "A": // Date
    227.                         case "M": // Time
    228.                             echo "<td >\n";
    229.                             echo "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    230.                             echo "<option value=\"lt\"".(($get_item_value_comp=="lt")?" selected":"").">&lt;</option>\n";
    231.                             echo "<option value=\"le\"".(($get_item_value_comp=="le")?" selected":"").">&lt;=</option>\n";
    232.                             echo "<option value=\"eq\"".(($get_item_value_comp=="eq")?" selected":"").">=</option>\n";
    233.                             echo "<option value=\"ge\"".((empty($get_item_value_comp)||$get_item_value_comp=="ge")?" selected":"").">&gt;=</option>\n";
    234.                             echo "<option value=\"gt\"".(($get_item_value_comp=="gt")?" selected":"").">&gt;</option>\n";
    235.                             echo "<option value=\"ne\"".(($get_item_value_comp=="ne")?" selected":"").">&lt;&gt;</option>\n";
    236.                             echo "</select></td>";
    237.                             break;
    238.                         case "T": // Text
    239.                             if (!empty($parameter_values)) { // List of values - no comparison
    240.                                 echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"texteq\" />\n</td>\n";
    241.                                 break;
    242.                             }
    243.                             echo "<td>\n";
    244.                             echo "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    245.                             echo "<option value=\"like\"".(($get_item_value_comp=="like")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_LIKE')."</option>\n";
    246.                             echo "<option value=\"notlike\"".(($get_item_value_comp=="notlike")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_NOT_LIKE')."</option>\n";
    247.                             echo "<option value=\"fulltext\"".(($get_item_value_comp=="fulltext")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FULLTEXT')."</option>\n";
    248.                             echo "</select></td>";
    249.                             break;
    250.                         case "V": // Multiple Value
    251.                             echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"find_in_set\" />\n</td>\n";
    252.                             break;
    253.                         case "S": // Short Text
    254.                         default:  // Default type Short Text
    255.                             if (!empty($parameter_values)) { // List of values - no comparison
    256.                                 echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"texteq\" />\n</td>\n";
    257.                                 break;
    258.                             }
    259.                             echo "<td>\n";
    260.                             echo "<select class=\"styled\" name=\"".$item_name."_comp\">\n";
    261.                             echo "<option value=\"like\"".(($get_item_value_comp=="like")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_LIKE')."</option>\n";
    262.                             echo "<option value=\"notlike\"".(($get_item_value_comp=="notlike")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_NOT_LIKE')."</option>\n";
    263.                             echo "</select></td>";
    264.                     }
    265.                 }
    266.                
    267.                 if (!empty($parameter_values)) { // List of values
    268.                     $fields=explode(";",$parameter_values);
    269.                     echo "<td  >\n";
    270.                     echo "<select class=\"styled\" name=\"$item_name";
    271.                     if ($db->f("parameter_multiselect")=="Y") {
    272.                         $size = min(count($fields),6);
    273.                         echo "[]\" multiple size=\"$size\">\n";
    274.                         $selected_value = array();
    275.                         $get_item_value = vmGet($_REQUEST, $item_name, array());
    276.                         foreach($get_item_value as $value) {
    277.                             $selected_value[$value] = 1;
    278.                         }
    279.                         foreach($fields as $field) {
    280.                             echo "<option value=\"$field\"".(($selected_value[$field]==1) ? " selected>" : ">"). $field."</option>\n";
    281.                         }
    282.                     }
    283.                     else {
    284.                         echo "\">\n";
    285.                         echo "<option value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."</option>\n";
    286.                         foreach($fields as $field) {
    287.                             echo "<option value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."</option>\n";
    288.                         }
    289.                     }
    290.                     echo "</select>";
    291.                 }
    292.                 else { // Input field                  
    293.                     echo "<td >\n";
    294.                     switch( $parameter_type ) {
    295.                         case "I": // Integer
    296.                         case "F": // Float
    297.                         case "D": // Date & Time
    298.                         case "A": // Date
    299.                         case "M": // Time
    300.                             echo "<input type=\"text\" class=\"styled\"  name=\"$item_name\" value=\"$get_item_value\" size=\"20\"/>";
    301.                             break;
    302.                         case "T": // Text
    303.                             echo "<textarea class=\"styled\" name=\"$item_name\" cols=\"35\" rows=\"6\" >$get_item_value</textarea>";
    304.                             break;
    305.                         case "C": // Char
    306.                             echo "<input type=\"text\" class=\"styled\"  name=\"$item_name\" value=\"$get_item_value\" size=\"5\" />";
    307.                             break;
    308.                         case "S": // Short Text
    309.                         default: // Default type Short Text
    310.                             echo "<input type=\"text\" class=\"styled\" name=\"$item_name\" value=\"$get_item_value\" size=\"50\" />";
    311.                     }
    312.                 }
    313.                 echo " ".$db->f("parameter_unit");
    314.                 switch( $parameter_type ) {
    315.                     case "D": // Date & Time
    316.                         echo " (".$VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETER_FORM_TYPE_DATE_FORMAT')." ";
    317.                         echo $VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETER_FORM_TYPE_TIME_FORMAT').")";
    318.                         break;
    319.                     case "A": // Date
    320.                         echo " (".$VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETER_FORM_TYPE_DATE_FORMAT').")";
    321.                         break;
    322.                     case "M": // Time
    323.                         echo " (".$VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETER_FORM_TYPE_TIME_FORMAT').")";
    324.                         break;
    325.                 }
    326.             }
    327.             else { // Break line (type == "B")
    328.                 echo "<tr>\n  <td><hr>";
    329.             }
    330.             echo "  </td>\n</tr>";
    331.         }
    332.     }
    333.     // Search Button
    334. ?> 
    335.     <tr ><td >
    336.         <input type="submit" class="button" name="search" value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE') ?>">
    337.         </td>
    338.     </tr>
    339.  
    340. <?php
    341.   } // end - There is a published Product Type
    342. /** Changed Product Type - End */
    343. ?>
    344. </form>
     

    Вложения:

  2.  
  3. ycsus
    Offline

    ycsus специалист

    Регистрация:
    19.02.2011
    Сообщения:
    249
    Симпатии:
    33
    Пол:
    Мужской
    У селекта на onchange submit повесить и будет счастье
    Код (html):
    1. onChange="javascript:document.formname(имя формы).submit();"
     

Поделиться этой страницей

Загрузка...