Top  Branding  Banner 
blank.gif
blank.gif
triangle.gif Du er her: /  Forsiden  /  Kildekoden  /  Db-select  /  Viewselect   Login nu   Login
blank.gif
««« Se kilde koden
blank.gif
tl.gif Cms tr.gif tl.gif Component tr.gif tl.gif Db tr.gif tl.gif Db-basket tr.gif tl.gif Db-login tr.gif tl.gif Db-customer tr.gif tls.gif     Db-select  trs.gif tl.gif Jquery tr.gif tl.gif Form-elements tr.gif tl.gif Menu-fisheye tr.gif tl.gif Template tr.gif tl.gif Tree-node tr.gif tl.gif Validator tr.gif
blank.gif
blank.gif
arrow-headline.gif Index
MenuLink  MenuLeft  
Tilbage

Skjul: Navn

ViewSelect.php


Vis: Sample code, tutorial

ViewSelect, Sample code, tutorial

Sådan benyttes komponenten ViewSelect klassen

Først skal du inkludere den fil der beskriver komponenten, som en klasse fil

  • <?
    require_once(HTML_PACKAGE_PATH.'/ViewSelect.php');
    ?>

Dernæst kan du enten benytte komponenten som et taglib (statiske metoder):

  • <?
    ViewSelect
    ::display($param1$param2$param3, ...);
    ?>

eller du kan lave en instance af komponenten og benytte metoderne direkte:

  • <?
    $object 
    = new ViewSelect($param1$param2$param3, ...);
    print 
    $object->getHtml();
    ?>

Skjul: Sådan vises komponenten

ViewSelect, Sådan vises komponenten

Sådan vises komponenten ViewSelect klassen




Vis: PHP source code

ViewSelect, PHP source code

Den fulde PHP kildekode for ViewSelect klassen

<?php
/**
 * @package db-select
 * @see HTML_DB_SELECT_VIEW_PATH.'/ViewSelect.php'
 * @copyright (c) http://Finn-Rasmussen.com
 * @license http://Finn-Rasmussen.com/license/ myPHP License conditions
 * @author http://Finn-Rasmussen.com
 * @version 1.11
 * @since 27-nov-2009
 */

/**
 * The required files
 */
require_once(HTML_BASE_COMMON_PATH.'/Html.php');
require_once(
HTML_FORM_COMPONENT_PATH.'/Select.php');
require_once(
HTML_FORM_COMPONENT_PATH.'/Options.php');
require_once(
HTML_FORM_COMPONENT_PATH.'/ElementFactory.php');

/**
 * Generates the html for a View Links
 * <code>
 * Usage:
 * This is how you hardcode some test data. A valid datareader object is returned
 * ================================================================================
 *   $name1     = 'Finn';
 *   $optgroup1 = 'Finn';
 *   $value1    = 'http://FinnRasmussen.dk/';
 *   $text1     = 'Finn Rasmussen';
 *   $selected1 = 'selected';
 *   
 *   $name2     = 'Hvepse';
 *   $optgroup2 = 'Hvepse.dk';
 *   $value2    = 'http://hvepse.dk/';
 *   $text2     = 'HvepseEksperten.dk';
 *   $selected2 = ''; // Empty
 *   
 *   $rows = array(
 *     array(SELECT_OPTION_NAME=>$name1,SELECT_OPTGROUP_LABEL=>$optgroup1,SELECT_OPTION_VALUE=>$value1,SELECT_OPTION_TEXT=>$text1,SELECT_OPTION_SELECTED=>$selected1,),
 *     array(SELECT_OPTION_NAME=>$name2,SELECT_OPTGROUP_LABEL=>$optgroup2,SELECT_OPTION_VALUE=>$value2,SELECT_OPTION_TEXT=>$text2,SELECT_OPTION_SELECTED=>$selected2,),
 *   );
 *   $header  = ''; // The header meta data
 *   $default = ''; // The default meta data array
 *   $limit   = ''; // The limit to use for the array
 *   $sort    = true;
 *   $datareader = DataReaderFactory::newDataReader($rows, $header, $default, $limit, $sort);
 *
 * This is how you query a mysql database for the datareader data
 * ==============================================================
 *   $table      = DATABASE_PREFIX.TABLE_NAME_SELECT;
 *   $id         = "";
 *   $sid        = UNIT_TEST_SID; //Session::getId(UNIT_TEST_SID, __FILE__, __LINE__);
 *   $translate  = ""; //true;
 *   $orderby    = ""; //SELECT_OPTGROUP_LABEL;
 *   $sort       = ""; //SORT_BY_ASC;
 *   $query      = new QuerySelect($table, $id, $sid, $translate, $orderby, $sort);
 *   $sql        = $query->getSql();
 *   $datareader = Command::newDataReader($sql);
 *   
 * And now you may use the datareader object
 *   $name     = "";
 *   $class    = CSS_SELECT_CLASS;
 *   $onchange = "";
 *   
 *   $view = new ViewSelect($datareader, $name, $class, $onchange, $label);
 *   print $view->getHtml();
 * Or
 *   ViewSelect::display($datareader, $name, $class, $onchange, $label);
 *
 * It will generate the follwing HTML
 * ===================================
 * <label for="$name">$label</label>
 * <select name="$name" id="$name" class="$class">
 *    <optgroup label="$optgroup1">
 *       <option value="$value1" selected="selected">$text1</option>
 *    </optgroup>
 *    <optgroup label="$optgroup2">
 *       <option value="$value2">$text2</option>
 *    </optgroup>
 * </select>
 * 
 * </code>
 * @package db-select
 */

class ViewSelect extends Html {
    
/*
     * @var $datareader The datareader object
     */
    
private $datareader null;
    
/**
     * @var String $name The name of the select element
     */
    
private $name "";
    
/**
     * @var String $class The CSS class name for the select element
     */
    
private $class "";
    
/**
     * @var String $onchange The onchange javascript code for the select element
     */
    
private $onchange "";
    
/**
     * @var String $label The label assocated with the Select element
     */
    
private $label "";
    
    
/**
     * Constructor
     * @param DataReader / array $datareader The Data Reader object OR an array
     * @param String     $name       The name of the select element
     * @param String     $class      The CSS class name for the select element
     * @param String     $onchange   The onchange javascript code for the select element
     * @param String     $label      The label assocated with the Select element
     */
    
function __construct($datareader$name=''$class=''$onchange=''$label='') {
        
$this->datareader $datareader;
        
$this->name       $name     !== "" $name     "";
        
$this->class      $class    !== "" $class    CSS_SELECT_CLASS;
        
$this->onchange   $onchange !== "" $onchange "";
        
$this->label      $label    !== "" $label    "";
        
parent::__construct();
    }
    
    
/**
     * TODO move to RadioGroup ?
     * @param  String $type The type of element to create
     * @return Object The object
     */
    
private function rows($type) {
        
$object = new Raw();
        
$rows $this->datareader->getRows();
        foreach(
$rows as $no=>$row) {
            
$key      '';
            
$name     '';
            
$value    '';
            
$len      '';
            
$required '';
            
$debug    '';
            
$checked  '';
            
$class    '';
            
$onblur   '';
            foreach(
$row as $aKey=>$aValue) {
                switch(
$aKey) {
                    case 
SELECT_OPTION_NAME:
                    case 
SELECT_OPTGROUP_LABEL:
                    case 
SELECT_OPTION_VALUE:
                    case 
SELECT_OPTION_TEXT:
                    case 
SELECT_OPTION_SELECTED:
                        $
$aKey $aValue;
                        break;
                    case 
DATABASE_PREFIX.TABLE_NAME_SESSION.SELECT_TABLE_ID:
                    case 
DATABASE_PREFIX.TABLE_NAME_SELECT.SELECT_TABLE_ID:
                    case 
SELECT_CREATED_DATE:
                    case 
SELECT_MODIFIED_DATE
                        
// Ignore
                        
break;
                    default:
                        
//die('File: '.__FILE__."<br />\r\nLine: ".__LINE__."<br />\r\n".'Unknown option attribute found key='.$aKey." value=$aValue");
                        
break;
                }
            }
            if (
$type === 'radio' || $type === 'checkbox') {
                
$checked $selected !== '' 'checked' '';
                
$key     $key      !== '' $key      : ($label != '' $label $text);
            }
            if (
$name === "") {
                
$name $this->name;
            }
            
$object->add(ElementFactory::newElement($type$key$name$value$len$required$debug$checked$class$onblur));
        }
        return 
$object;
    }
    
    
/**
     * Return a fully populated select/option element
     * @return Select The object
     */
    
private function newSelect() {
        
$object = new Raw();
        
$rows $this->datareader->getRows();
        
$options = new Options($rows);
        
$name $this->name;
        if (
$name === "") {
            
$name $options->get('name');
        }
        
$text $this->label !== '' $this->label $name;
        if (
$text !== '') {
            if (
defined('HTML_LANGUAGE_UTIL_PATH')) {
                
$text Translate::sql($text);
            }
            
        }
        
$label = new Label($text);
        
$object->add($label);
        
$select = new Select($name$this->class$this->onchange);
        
$select->add($options);
        
$object->add($select);
        return 
$object;
    }
    
    
/**
     * Return the content as an object
     * @return Object The content as an object
     */
    
function newContent() {
        
$object = new Raw();
        
$numrows $this->datareader->getNumRows();
        
        if (
$numrows === 0) {
            
$object = new Raw("No data, count = 0");
        } else if (
$numrows === SELECT_CHECKBOX_WHEN) {
            
$type 'checkbox';
            
$object->add($this->rows($type));
        } else if (
$numrows SELECT_RADIO_WHEN) {
            
$type 'radio';
            
$object->add($this->rows($type));
        } else {
            
$object->add($this->newSelect());
        }
        return 
$object;
    }

    
/**
     * Returns the html for the control 
     * including the html for the added elements
     * @return String the complete html
     */
    
function getHtml() {
        
$html  $this->html;
        
$this->add($this->newContent());
        
$html .= $this->getElements();
        return 
$html;
    }

    
/**
     * Display html
     * <code>
     * Usage:
     *    ViewSelect::display($datareader, $name, $class, $onchange, $label); 
     * </code>
     * @static
     * @param DataReader / array $datareader The Data Reader object OR an array
     * @param String     $name       The name of the select element
     * @param String     $class      The CSS class name for the select element
     * @param String     $onchange   The onchange javascript code for the select element
     * @param String     $label      The label assocated with the Select element
     */
    
public static function display($datareader=null$name=''$class=''$onchange=''$label='') {
        
$html = new ViewSelect($datareader$name$class$onchange$label);
        
$html->addHtml();
    }
}
?>

Vis: HTML source code

ViewSelect, HTML source code

Den fulde HTML kildekode for ViewSelect klassen

<?
<!-- DEBUGViewSelect -->
<!-- 
DEBUGLabel -->
<
label for="Label1" accesskey="L" title="Accelerator key, use (Alt + L)">
    <
b><span class="baseColorDark">l</span>g&nbsp;...</b>&nbsp; (Alt L) </label><br />

<!-- 
DEBUGSelect -->
<
select name="test" id="Label1" class="formXLARGE formSelect" tabindex="1">
<!-- 
DEBUGOptions -->
<!-- 
DEBUGOptgroup -->
 <
optgroup label="privat">
<!-- 
DEBUGOption -->
    <
option value="http://FinnRasmussen.dk/">Finn Rasmussen</option>

</
optgroup>

<!-- 
DEBUGOptgroup -->
 <
optgroup label="erhverv">
<!-- 
DEBUGOption -->
    <
option value="http://hvepsebo.dk/" selected="selected">HvepseBo.dk</option>

<!-- 
DEBUGOption -->
    <
option value="http://HvepseEksperten.dk/" selected="selected">HvepseEksperten.dk</option>

</
optgroup>



</
select><br />




?>

Vis: Class methods

ViewSelect, Class methods

Her er 'klasse metoderne' for ViewSelect klassen:

  • __construct
  • newContent
  • getHtml
  • display
  • setObject
  • set
  • get
  • getAttribute
  • getTag
  • add
  • getSizeof
  • getElement
  • getElements
  • getToogle
  • getMaximize
  • getMinimize
  • newTriangle
  • getStartHtml
  • getEndHtml
  • showsource
  • getClassName
  • getMsg
  • addHtml
  • __toString
  • getCacheFileName
  • save
  • content

Vis: Object vars

ViewSelect, Object vars

Her er 'objekt variable' for ViewSelect klassen:

  • html =>
  • sql =>

MenuRight 
triangle.gif

Dansk

Deutch

English (UK)

France

Italy

Norsk

Svensk

English (USA)


 
blank.gif
MenuBottom 
triangle.gif Copyright @ 1999-2010 www.Finn-Rasmussen.com Powered by myPHP Version (5.3.3-7+squeeze3) 1.11
blank.gif