js_select_handler.class.php
Upload User: feiyaoda
Upload Date: 2016-11-21
Package Size: 9556k
Code Size: 2k
Category:

WEB Mail

Development Platform:

PHP

  1. <?php
  2. class js_select
  3. {
  4.     // form name
  5.     var $form_name;
  6.     
  7.     // the select name in form
  8.     var $select_name;
  9.     
  10.     // the dropdown name to show  : the first element
  11.     var $menu_name;
  12.     
  13.     function add($name,$js_function)
  14.     {
  15.         $this->options[] = array('name' => $name, 'function' => $js_function);
  16.     }
  17.     
  18.     function add_separator()
  19.     {
  20.         $this->options[] = array('name' => '', 'function' => '');
  21.     }    
  22.     
  23.     function render_js_function()
  24.     {
  25.         echo "function perform_action_".$this->select_name."()n";
  26.         echo "{n";
  27.         echo "    pagetype = parent.main_content.document.pagetype.type.value;n";
  28.         echo "    if (pagetype != 'filelist')n";
  29.         echo "    {n";
  30.         echo "        alert('impossible to perform action on that page!');n";
  31.         echo "        document.".$this->form_name.".".$this->select_name.".selectedIndex = 0;n";
  32.         echo "        return false;n";
  33.         echo "    }n";        
  34.         echo "    action_to_perform = document.".$this->form_name.".".$this->select_name.".selectedIndex;n";
  35.         echo "n";
  36.         $i=1;
  37.         foreach ($this->options as $id =>$option_array)
  38.         {
  39.             echo "    if (action_to_perform == $i)  { ".$option_array['function']." } // action ".$option_array['name']."n";
  40.             $i++;
  41.         }
  42.         echo "    document.".$this->form_name.".".$this->select_name.".selectedIndex = 0;n";
  43.         echo "}n";
  44.     }
  45.     
  46.     function render_html_select($css_style='')
  47.     {
  48.         if ($css_style) $css_style = ' class="'.$css_style.'"';
  49.         echo "  <select name=".$this->select_name." onChange="perform_action_".$this->select_name."()"$css_style>n";
  50.         echo "    <option value=0>".$this->menu_name."</option>n";// blank value
  51.         foreach ($this->options as $id =>$option_array)
  52.         {
  53.             echo "    <option value=$i>".$option_array['name']."</option>// function ".$option_array['function']."n";
  54.             $i++;
  55.         }        
  56.         echo "  </select>n";
  57.     }    
  58. }