Creating a drop down list within FORM to SHOW

Forum
Last Post
Threads / Messages

FounderSim

Member
Member
Joined
Sep 23, 2014
Messages
65
Points
0
Mysidian Dollar
4,975
My commented line is where my error is.

Ive tried a few other things such as $petField = new buildDropDownList("adopt", "AdoptTypeList");

I tried to see if i could hmm by-pass? the buildDropDownList and access the
buildAdoptTypeList($name) directly so I tried

$petField->add(new buildAdoptTypeList("test"));
$petField = new buildAdoptTypeList("test");

none seem to work. i dunno. any help would be apreaciated.

I can't seem to get an actual error besides " Internal Server Error 500" I can't seem to put error reporting on. I am not sure if mysidia has it turned off by default or its something else.

Code:
	public function add(){
	    $mysidia = Registry::get("mysidia");
		$document = $this->document;	
		$document->setTitle("TEST");

		$explorerForm = new Form("addform", "add", "post");

		$petField = new FieldSet("pet");
		$petField->add(new Legend("Adding a Explore Pet"));
		//$petField->add(new buildDropDownList("adopt", "AdoptTypeList"));
		$petField->add(new Comment("Pet Chance:", TRUE, "b"));
		$petField->add(new TextField("textPetPerc"));
		$explorerForm->add($petField);

		

		$myButton = new FieldSet("Test It");
		$myButton->add(new Legend("required?"));
		$myButton->add(new Button("Testing", "submit", "submit"));
		$explorerForm->add($myButton);
 
Code:
		$petField->add(new DropDownList("adopt", "AdoptTypeList"));

seems to work for anyone who needs the answer

=)
 
Code:
		$petField->add(new DropDownList("adopt", "AdoptTypeList"));

seems to work for anyone who needs the answer

=)


Back again.. It doesn't work afterall. It just displays an empty "drop down list".

How do I get the drop down list with my contents using the more simple version of the form building?

or do I have to go about the more complicated way as seen in other files?

like this way:

sniplet from breedingview.php
Code:
		$settingsForm->buildComment("Breeding System Enabled:   ", FALSE)->buildRadioList("system", $breedingSystem, $breedingSettings->system)
					 ->buildComment("Breeding Method(heuristic or advanced):   ", FALSE)->buildRadioList("method", $breedingMethod, $breedingSettings->method)
					 ->buildComment("Ineligible Species(separate by comma):   ", FALSE)->buildTextField("species", ($breedingSettings->species)?implode(",", $breedingSettings->species):"")
		             ->buildComment("Interval/wait-time(days) between successive attempts:	 ", FALSE)->buildTextField("interval", $breedingSettings->interval)
					 ->buildComment("Minimum Level Requirement:	 ", FALSE)->buildTextField("level", $breedingSettings->level)
 
Example of how to create a form, a dropdown list with options, display them and then retrieve information from the dropdown list:

PHP:
        	//create a form: Form(form_name, page_to_redirect, method)
        	$formExample = new Form("exampleform", "page_to_send_to_here", "post");
        	
        	//create a dropdown list object: DropdownList(name)
  	   	$exampleDropdown = new DropdownList("myList");
  	   	 
  	   	 //add options to dropdown list: Option(option_name_displayed, option_value)
                 $exampleDropdown->add(new Option("Option1", "option1")); 
                 $exampleDropdown->add(new Option("Option2", "option2")); 
                 
                 //add dropdown list to form
                 $formExample->add($exampleDropdown);
                 //add button to form
                 $formExample->add(new Button("Click Me", "submit", "submit"));
                 //add form to document to display it
                 $document->add($formExample);   
                 
                 //after clicking button to submit form
                 if($mysidia->input->post("submit")){
                       //retrieve option selected in the dropdown list, by the dropdown list name
                       $chosenOption = $mysidia->input->post("myList");
                       $document->add(new Comment("I chose this: {$chosenOption}"));
                 }
 
Thanks for the reply IntoRain.

I seen I could do it that way. I am trying to use the methods already provided in the class "class_formhelper.php".

This way I don't have to like "recode" whats already there if you can understand. It also seems more reasonable to add new methods to the class_formhelper.php when creating new drop down list with database information then the aproach you mentioned as well.

I just don't know how to properly use them. =(
 
Thanks for the reply IntoRain.

I seen I could do it that way. I am trying to use the methods already provided in the class "class_formhelper.php".

This way I don't have to like "recode" whats already there if you can understand. It also seems more reasonable to add new methods to the class_formhelper.php when creating new drop down list with database information then the aproach you mentioned as well.

I just don't know how to properly use them. =(

I see. I think the ->build(...) way is more suited to that example you posted. If you want to use this way with the code you already have, we can be a bit hacky about it:

buildAdoptTypeList is a function of the class FormHelper, so you can't do new buildAdoptTypeList(). You need an instance of FormHelper first, then call its functions:

PHP:
$exampleHelper = new FormHelper();
$exampleDropdown = $exampleHelper->buildAdoptTypeList("myList");//new DropdownList("myList");

//edit: you can do this now:
$petField->add($exampleDropdown);

And you can add that dropdown $exampleDropdown to the form (or the fieldset you have there)
 
Last edited:
hmm. Interesting. =)

THanks.


You know how I can remove these stupid Internal Server errors? I want to actually see what the real errors are? Its really hard debugging with no error log or actual errors besides a Internal Server Error.
 

Similar threads

Users who are viewing this thread

  • Forum Contains New Posts
  • Forum Contains No New Posts

Forum statistics

Threads
4,277
Messages
33,122
Members
1,602
Latest member
BerrieMilk
BETA

Latest Threads

Top