View Single Post
  #1  
Old 12-29-2014, 02:47 PM
Abronsyth's Avatar
Abronsyth Abronsyth is offline
A Headache Embodied
 
Join Date: Aug 2011
Location: NY
Posts: 1,011
Gender: Male
Credits: 118,493
Abronsyth is on a distinguished road
Default Drop Down List to Use Item Messed Up

Okay, this is weird.

The drop down list, when you go through to use an item, is showing me my adoptables' ID number (1), not name (Snowball), and when I got to use it, I end up with this error:
"Adoptable ID SnowBall does not exist or does not belong to the owner specified..."
As though the name (Snowball) is being selected when the ID (1) should be. It is almost like the two have changed positions.

Here's what I mean:


So, if someone could help just let me know which files you'd need to see. Here's my class_dropdownlist.php, just in case:
PHP Code:
<?php

use Resource\Native\String;
use 
Resource\Collection\Collective;
use 
Resource\Collection\LinkedList;
use 
Resource\Collection\LinkedHashMap;

/**
 * The DropdownList Class, extends from abstract GUIContainer class.
 * It specifies a standard single-item dropdown list.
 * @category Resource
 * @package GUI
 * @author Hall of Famer 
 * @copyright Mysidia Adoptables Script
 * @link http://www.mysidiaadoptables.com
 * @since 1.3.3
 * @todo Not much at this point.
 *
 */

class DropdownList extends GUIContainer{
    
    
/**
     * The autofocus property, checks if the input component is autofocused.
     * @access protected
     * @var Boolean
    */
    
protected $autofocus FALSE;
    
    
/**
     * The disabled property, checks if the input component is disabled.
     * @access protected
     * @var Boolean
    */
    
protected $disabled FALSE;
    
    
/**
     * Constructor of SelectList Class, which assigns basic property to this list
     * @param String  $name
     * @param ArrayList  $components
     * @param String  $identity
     * @param Event  $event
     * @access public
     * @return Void
     */
    
public function __construct($name ""$components ""$identity ""$event ""){
        if(!empty(
$name)){
            
$this->setName($name);
            
$this->setID($name);
        }
        if(!empty(
$identity)) $this->select($identity);
        if(!empty(
$event)) $this->setEvent($event);
        
        
parent::__construct($components);
        
$this->renderer = new ListRenderer($this);        
    }
    
    
/**
     * The isAutofocus method, getter method for property $autofocus.    
     * @access public
     * @return Boolean
     */
    
public function isAutofocus(){
        return 
$this->autofocus;    
    }

    
/**
     * The setAutofocus method, setter method for property $autofocus.
     * @param Boolean  $autofocus      
     * @access public
     * @return Void
     */
    
public function setAutofocus($autofocus TRUE){
        
$this->autofocus $autofocus;
        
$this->setAttributes("Autofocus");
    }    
    
    
/**
     * The isDisabled method, getter method for property $disabled.    
     * @access public
     * @return Boolean
     */
    
public function isDisabled(){
        return 
$this->disabled
    }

    
/**
     * The setDisabled method, setter method for property $disabled.
     * @param Boolean  $disabled       
     * @access public
     * @return Void
     */
    
public function setDisabled($disabled TRUE){
        
$this->disabled $disabled;
        
$this->setAttributes("Disabled");
    }

    
/**
     * The add method, sets an Option Object to a specific index.
     * @param Option|OptGroup  $option
     * @param int  $index     
     * @access public
     * @return Void
     */    
    
public function add($option$index = -1){
        if(!(
$option instanceof Option) and !($option instanceof OptGroup)) throw new GUIException("Cannot add a non-option type component to dropdown list.");
        
parent::add($option$index);            
    }
    
    
/**
     * The select method, determines which option in this list should be set selected.
     * @param String  $identity   
     * @access public
     * @return Void
     */
    
public function select($identity){
        foreach(
$this->components as $components){
            if(
$components->getValue() == $identity$components->setSelected(TRUE);
        }        
    }
    
    
/**
     * The fill method, fill in this dropdownlist with options from database starting at a given index.
     * To use it, you need PDO or MySQLi to fetch all rows with one or two properties to serve as collection list or map.
     * @param Collective $collection
     * @param String  $identity
     * @param Int  $index     
     * @access public
     * @return Void
     */
    
public function fill(Collective $collection$identity ""$index = -1){
        if(
$index != -1$this->currentIndex $index;        
        if(
$collection instanceof LinkedList$this->fillList($collection$identity$index);
        elseif(
$collection instanceof LinkedHashMap$this->fillMap($collection$identity$index);
        else throw new 
GUIException("Cannot fill option objects inside this dropdownlist");
    }

    
/**
     * The fillList method, fill in this dropdownlist with elements from a LinkedList.
     * @param LinkedList  $list
     * @param String  $identity
     * @param Int  $index     
     * @access protected
     * @return Void
     */
    
protected function fillList(LinkedList $list$identity ""$index = -1){
        
$iterator $list->iterator();
        while(
$iterator->hasNext()){
            
$field = (string)$iterator->next();
             
$option = new Option($field$field);
            if(
$option->getValue() == $identity$option->setSelected(TRUE);
            
$this->add($option$index);
            if(
$index != -1$index++;           
        }        
    }

    
/**
     * The fillList method, fill in this dropdownlist with entries from a LinkedHashMap.
     * @param LinkedHashMap  $map
     * @param String  $identity
     * @param Int  $index     
     * @access protected
     * @return Void
     */
    
protected function fillMap(LinkedHashMap $map$identity ""$index = -1){
        
$iterator $map->iterator();
        while(
$iterator->hasNext()){
            
$field $iterator->next();
             
$option = new Option((string)$field->getKey(), (string)$field->getValue()); 
            if(
$option->getValue() == $identity$option->setSelected(TRUE);
            
$this->add($option$index);
            if(
$index != -1$index++;           
        }        
    }

    
/**
     * Magic method __toString for DropdownList class, it reveals that the object is a dropdown list.
     * @access public
     * @return String
     */
    
public function __toString(){
        return new 
String("This is an instance of Mysidia DropDownList class.");
    }    
}    
?>
__________________
My Mods Site (1.3.4, 2020 Mods)
Reply With Quote