Hi all,
Was looking for a little help with a select option script for a drop down menu.
Basically what i'm doing is... pulling a character's id (char_id) and it's corresponding name (char_name) to populate a drop down list.
When selected, it pulls in information from that record and populates some table information about that character. Now.. it's working fine but I'd like to refine the function of the page a smidge to make things cleaner for the user.
PHP Code:
echo "<form method=post action=".$_SERVER['PHP_SELF'].">";
echo "<select name=character value=''>character</option>";
while($nt=mysql_fetch_array($result)){ //Array or records stored in $nt
echo "<option value=$nt[char_id]>$nt[char_name]</option>";
// I think an if statement needs to go here.
}
echo "</select>";
echo "<input type=submit value=submit>";
echo "</form>";
So this works find and the data is pulled properly. What I'd like to accomplish is this. When the page reloads with the selected character, the select box just contains the default (initial selection) instead of the current character.
also, it works just fine with a submit button, but don't know if there's a way to select from the list just by clicking on the dropdown list instead of using a submit button.
Thanks in advance for your help.
Brian
This doesn't look right to me. Where is the opening option tag for this option?
If you don't want to use a submit button, you can put an onchange on the select list which calls a function that uses the js submit method to submit the form.
You also need quotes around html attribute values.
that echo SERVER PHP SELF, you can just put "self" into action, it should work.
PHP Code:
<?php ?> <form method="post" action="self"> <select name="character"> <option>character</option> <?php while($nt=mysql_fetch_array($result)) { //Array or records stored in $nt printf('<option value="%d">%s</option>', $nt['char_id'], $nt[char_name]); } // I think an if statement needs to go here. //>> it looks ok to me ?> </select> <input type=submit value=submit> </form> <?php
This doesn't look right to me. Where is the opening option tag for this option?
Thanks for the reply tirna
I thought the same thing about that. Honestly i got this snippet from a tutorial and modified it for my database calls. It works without that end tag.
I'll check on the jscript to get the onclick to work
@eval(BadCode) your code snippet also works, but using action="self" returns a 'page cannot be found' problem. not sure if that's setup somewhere else on the page or in the header section or something but that's the end result.
method adds and additional option "character" to my select box which isn't a valid choice, since it is not a value in the database call.
Over all the code I had was working, but i could not retain the value that was returned in the post.
I assume there would be an if check in the 'while' routine that would grab the $_post value and make the select box use that as 'selected'
If you're using a <select><option> element for a form, maybe instead of onclick you should be looking into using onchange. Onclick works well for radio and checkbox elements, I'm not sure that it's the best choice for a <select><option> element.
Bookmarks