Version: 1.0
Type: Class
Category: HTML
License: GNU General Public License
Description: Here’s a neat class to do a toolbar that uses imagebuttons for an HTML form. Button clicks emulate a form submit, and can also call a user supplied Javascript function.
eMail me at [email protected] for a bunch of 3d button images to use.
<?php class FormButton { var $Name; // name of button var $Cmd; // command set by button click to $cmd var $ImageUp; // bitmap for up button var $ImageDown; // button for down button var $ImageSel; // image for selected button (mouseover) var $Form; // form button applies to var $Text; // tooltip text var $Def; // html definition of button var $Width; // width of button var $Height; // height of button var $Visible; // visible boolean var $Func; // javascript function to run when button clicked // constructor function FormButton($nm, $cm, $frm, $txt, $up, $down, $sel, $func="", $w=32, $h=24) { $this->Name = $nm; $this->Cmd = $cm; $this->ImageUp = $up; $this->ImageDown = $down; $this->ImageSel = $sel; $this->Form = $frm; $this->Text = $txt; $this->Width = $w; $this->Height = $h; $this->Func = $func; $this->Visible = TRUE; // create html code for this button $this->Def = "<A HREF="javascript:document.$this->Form.submit()" n"; $this->Def .= "onmouseover="document.$this->Form.$this->Name.src='$this->ImageSel'" n"; $this->Def .= "onmouseout="document.$this->Form.$this->Name.src='$this->ImageUp'" n"; $this->Def .= "onclick="$this->Func return formbutton_click('$this->Cmd', 'cmd', '$this->Name', '$this->ImageDown')">n"; $this->Def .= "<IMG SRC="$this->ImageUp" WIDTH="$this->Width" HEIGHT="$this->Height" BORDER="0" ALT="$this->Text" NAME="$this->Name">n"; $this->Def .= "</A>"; } // set a click handler function for this button function SetFunction($func="") { $this->Func = $func; $this->Def = "<A HREF="javascript:document.$this->Form.submit()" n"; $this->Def .= "onmouseover="document.$this->Form.$this->Name.src='$this->ImageSel'" n"; $this->Def .= "onmouseout="document.$this->Form.$this->Name.src='$this->ImageUp'" n"; $this->Def .= "onclick="$this->Func return formbutton_click('$this->Cmd', 'cmd', '$this->Name', '$this->ImageDown')">n"; $this->Def .= "<IMG SRC="$this->ImageUp" WIDTH="$this->Width" HEIGHT="$this->Height" BORDER="0" ALT="$this->Text" NAME="$this->Name">n"; $this->Def .= "</A>"; } } class ToolBar { var $Buttons; array for FormButton objects // add button to toolbar function Add(&$btn) { $this->Buttons[$btn->Name] = $btn; } // display the toolbar function Display($usetable=TRUE) { if ($usertable) echo "<TABLE><TR>n"; foreach ($this->Buttons as $btn) { if ($btn->Visible) echo "<TD>$btn->Def</TD>n"; } if ($usetable) echo "</TR></TABLE>n"; } // hide a toolbar button function HideButton($name) { $btn = &$this->Buttons[$name]; $btn->Visible = FALSE; } // show a toolbar button function ShowButton($name) { $btn = &$this->Buttons[$name]; $btn->Visible = TRUE; } // set a function to run on button click function SetFunction($name, $func="") { $btn = &$this->Buttons[$name]; $btn->SetFunction($func); } } ?> <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> // function to set cmd value when toolbar button clicked function formbutton_click(btn, cmd, nam, img) { // redraw the button as clicked button = document.myform.elements[nam]; button.src = img; // set the value command = document.myform.elements[cmd]; command.value = btn; return true; } </SCRIPT> </HEAD> <BODY> <?php // load toolbar buttons $btn_first = new FormButton("btn_first", "FIRST", "myform", "Go to First Record", "./images/btn-first0.bmp", "./images/btn-first1.bmp", "./images/btn-first2.bmp"); $btn_prev = new FormButton("btn_prev", "PREV", "myform", "Go to Previous Record", "./images/btn-prev0.bmp", "./images/btn-prev1.bmp", "./images/btn-prev2.bmp"); $btn_next = new FormButton("btn_next", "NEXT", "myform", "Go to NextRecord", "./images/btn-next0.bmp", "./images/btn-next1.bmp", "./images/btn-next2.bmp"); $btn_last = new FormButton("btn_last", "LAST", "myform", "Go to Last Record", "./images/btn-last0.bmp", "./images/btn-last1.bmp", "./images/btn-last2.bmp"); $btn_process = new FormButton("btn_process", "PROCESS", "myform", "Process Form Data", "./images/btn-process0.bmp", "./images/btn-process1.bmp", "./images/btn-process2.bmp"); // create the toolbar $toolbar = new ToolBar; $toolbar->Add($btn_first); $toolbar->Add($btn_prev); $toolbar->Add($btn_next); $toolbar->Add($btn_last); $toolbar->Add($btn_process); display the toolbar $toolbar->Display(); // a sample form // the hidden field '$cmd' contains the command of the button that was clicked echo "<FORM NAME="myform">n"; echo "<TD><INPUT TYPE="hidden" NAME="cmd" VALUE="$cmd"></TD>n"; echo "</TR></TABLE>n"; echo "</FORM>n"; ?> </BODY> </HTML>