www.webdeveloper.com
Results 1 to 7 of 7

Thread: [RESOLVED] php select options getting me down

Hybrid View

  1. #1
    Join Date
    Jan 2011
    Posts
    4

    resolved [RESOLVED] php select options getting me down

    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

  2. #2
    Join Date
    Mar 2010
    Posts
    2,803
    Code:
     
    echo "<select name=character value=''>character</option>";
    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.

  3. #3
    Join Date
    Jul 2010
    Location
    /ramdisk/
    Posts
    865
    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

  4. #4
    Join Date
    Jan 2011
    Posts
    4
    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.

    Also using the:
    Code:
    <form method="post" action="self">
    <select name="character">
    <option>character</option>
    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'

    Thanks for your input.

  5. #5
    Join Date
    Jan 2011
    Posts
    4
    An additional update.

    Since i was loading some post data into variables for use in the display form.
    I was able to take care of half my problem with this line of code...
    PHP Code:
    <option 'selected=\"selected\"'>".$char_name."</option>"; 
    This loaded the character name associated with the ID passed in the $_post value.

    Still working on a valid "onclick" option to take out the submit button, but i'm getting there...

  6. #6
    Join Date
    Jul 2010
    Location
    /ramdisk/
    Posts
    865
    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.

  7. #7
    Join Date
    Jan 2011
    Posts
    4
    From looking around i think i'll just stick with the submit button. Seems like combining client side and server side in those situations is a pain.

    This post can be marked as solved and thank you for your help.
    brian

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles