Re: Undefined class constant

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here is the HTMLFormField constructor, it is pretty simple :

       /**
        * Creates a new HTMLFormField object
        *
        * @param string $_formName Name of the form this field belongs to
        * @param Column $_column Record object this column derives from
* @param int $_type Type of field, this determines the type of HTML element that will be rendered
        * @param string $_class Class name for the HTML element
* @param array $_values Array of display values for combos, lists, radios * @param string $_label Label to be displayed next to a radio, check box * @param string $_nullMessage Message that will be displayed when a required field was not filled * @param string $_invalidMessage Message that will be displayed when the data entered is invalid * @param string $_tooShortMessage Message displayed when the field value is bellow minimum value or length * @param string $_tooLongMessage Message displayed when the field value is above maximum value or length
        */
public function __construct($_formName,$_column=null,$_type=0,$_class='' ,$_fieldValues=null,$_label="",$_nullMessage='',$_invalidMessage='',$_tooShortMessage='',$_tooLongMessage='')
       {
// Copy column's properties and save passed parameters into local properties
               if ($_column instanceof Column )
               {
                       $this->Name=$_column->Name;
                       $this->RegEx=$_column->RegEx;
                       $this->Min=$_column->Min;
                       $this->Max=$_column->Max;
                       $this->Type=$_column->Type;
                       $this->Value=$_column->Value;
               }

               $this->FormName=$_formName;
               $this->NullMessage=$_nullMessage;
               $this->InvalidDataMessage=$_invalidMessage;
               $this->TooLongMessage=$_tooShortMessage;
               $this->TooLongMessage=$_tooLongMessage;
               $this->Class=$_class;
               $this->FieldValues=$_fieldValues;
               $this->FieldType=$_type;

       }

Trust me, it doesn't have any logical explanation :)

Puiu

T.Lensselink wrote:
On Wed, 19 Sep 2007 17:13:02 +0300, Puiu Hrenciuc <hpuiu@xxxxxxxxx> wrote:
Here are the content for all used variables:

$_this->Name: (string) "FilterForm"
$_column:
StringColumn Object
(
     [Table] => Roles
     [Name] => RoleName
     [Function] => like
     [Type] => 4
     [Min] =>
     [Max] =>
     [RegEx] =>
     [AllowedValues] => Array
         (
         )

     [IsValid] =>
     [IsVisible] => 1
     [Sorted] => 0
     [Primary] =>
     [Foreign] =>
     [Negated] =>
     [GroupBy] =>
     [Aggregate] =>
     [_value:protected] =>
)

$_type: (int) 1

T . Lensselink wrote:
On Wed, 19 Sep 2007 15:56:22 +0300, Puiu Hrenciuc <hpuiu@xxxxxxxxx>
wrote:
Hi everyone,

I'm having a hard time dealing with an error that appeared overnight
in one of my PHP script:

Fatal error: Undefined class constant 'self::TYPE_HIDDEN' in
/#########/classes/framework/HTML/HTMLForm.php on line 120

HTMLForm.php snippet:

.........
// Creates the HTMLFormFields
foreach ($this->Record->Columns as $_column)
{
	// Add only visible columns
	if ($_column->IsVisible)
	{
		// Default field type
		$_type=HTMLFormField::ELEMENT_TYPE_TEXT ;

                 // Adjust default type based on Column type
                 switch ($_column->Type)
                 {
                 	case Column::TYPE_AUTONUMBER:
                    			  $_type=HTMLFormField::ELEMENT_TYPE_HIDDEN ;
                           break;

			case Column::TYPE_BOOLEAN :
                           $_type=HTMLFormField::ELEMENT_TYPE_CHECKBOX
;
                           break;
                         default:
                           break;
117:           }
118:
119:		// Add the column to the list of fields
120:		$this->Fields[$_column->Name]=new
121:			HTMLFormField($this->Name,$_column,$_type);
122:
123:	}

}

As you can see there is no refference to any TYPE_HIDDEN constant
at line 120, nor in the HTMLFormField's constructor.

I searched the net, but I just can't find the reason of this.
Can someone please help me ?

Thanks,
Puiu
When the error happens. What are the contents of 120: $_column->Name ?

What happens inside the constructor when you create a new instance of
HTMLFormField?
Maybe the $_type is validated there. Or i'm missing something in this
snippet.




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux