Login   Register  
PHP Classes
elePHPant
Icontem

File: class_selectbox.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Frits Bergman  >  SelectBox  >  class_selectbox.php  >  Download  
File: class_selectbox.php
Role: Class source
Content type: text/plain
Description: Selectbox with good features.
Class: SelectBox
select
Author: By
Last change: name gone
Date: 10 years ago
Size: 3,002 bytes
 

Contents

Class file image Download
<?php
 
class SelectBox extends Form_Element
{
 
// description: Use with class_forms.php.
 //              Don't foget to select the id-column also in SQL-command.
 //              Show a selectbox with odbc-database-support.
 //              Show selectbox add id's and items to.
 //              Show selectbox filled with database-field-values.
 //              Show selectbox filled with hyperlinks to auto-jump to.
 // version:     1.4
 // history:     24-7-2003 release version 1.4
 // history:     7-8-2002 release version 1.0
 
 
var $Connection;
 var 
$SQLQuery_items "";
 var 
$SQLQuery_items_idcolnr 1;
 var 
$ItemList = array();
 var 
$SQLQuery_selected "";
 var 
$SQLQuery_selected_idcolnr 1;
 var 
$SQLQuery_update;
 var 
$Selected "";      // set selected item when no db available
 
var $Hyperlinks 0;
 var 
$Extra_URI_1 "";
 var 
$Extra_URI_2 "";
 var 
$ExtraProperties "";
 
 
// constructor (set form-element's name)
 
function SelectBox($Name)
 {
  
$this->Set_Element_Name($Name);
 }
 
 
// show selectbox
 
function Show()
 {
  
// handle chosen input with db
  
if (!empty($this->SQLQuery_update))
  {
   
$result odbc_exec($this->Connection,$this->SQLQuery_update);
  }
 
  
// itemlist from db
  
if ($this->SQLQuery_items != "")
  {
   
$result odbc_exec($this->Connection,$this->SQLQuery_items);
   
$nrfields odbc_num_fields($result);
   while(
odbc_fetch_row($result))
   {
    
// haal data per result-kolom
    
for ($i 1$i <= $nrfields$i++)
    {
     
$showstring odbc_result($result,$i);
     
$id odbc_result($result,$this->SQLQuery_items_idcolnr);
     
$this->ItemList[$id] = $showstring;
    }
   }
  }
 
  
// set selected value with a query (manual use: set $this->Selected to an id)
  
if ($this->SQLQuery_selected != "")
  {
   
$result odbc_exec($this->Connection,$this->SQLQuery_selected);
   if (
odbc_fetch_row($result))
   {
    
$this->Selected odbc_result($result,$this->SQLQuery_selected_idcolnr);
   }  
  }
 
  
// show selectbox
  
if ($this->Hyperlinks != 0$OnChangeString "OnChange=\"top.location.href='".$this->Extra_URI_1."'+this.options[this.selectedIndex].value+'".$this->Extra_URI_2."'\"";
  else 
$OnChangeString "";
  print
"<select name='".$this->Element_Name."' ".$OnChangeString." ".$this->ExtraProperties.">\n";
  
reset($this->ItemList);
  
// toon items als options via itemlist
  
for ($i 0$i count($this->ItemList); $i++)
  {
   print
"<option value='".key($this->ItemList)."'";
   if (
key($this->ItemList) == $this->Selected) print " selected";
   print 
">".current($this->ItemList)."\n";
   
next($this->ItemList);
  }
  print
"</select>";
 }
 
 
// add item manually
 
function AddItem($Id,$ShowString)
 {
  
$this->ItemList[$Id] = $ShowString;
 }
 
 
// read a value
 
function GetItem($Id)
 {
  print 
$this->ItemList[$Id];
 }
 
 
// get number of items
 
function ItemCount()
 {
  return 
count($this->ItemList);
 }
}
 
?>