尝试从PHP中的选择下拉菜单中回显值

尝试从PHP中的选择下拉菜单中回显值

问题描述:

I am in school for web development, so I clearly don't know a lot yet. I am trying to grab a value from a select, and output it in a paragraph. I know it's about the Browns, but everything else works, but I cannot seem to find anything on *, or Google on how to grab the value that works. I get the following error:

Notice: Undefined variable: draft in C:\wamp\www\lab 5\process.php on line 42

This error is in my paragraph, which makes me think I am grabbing the value, but it isn't outputting correctly? I am using a variable to show where I want to output that value in the paragraph.

This is my HTML:

 <li><select id="uDraft"
            <select>
            <option value="Draft Offense">Draft Offense</value>
            <option value="Draft Defense">Draft Defense</value>
            <option value="Trade them, we can't pick good anyways">Trade them,  we can't pick good anyways</value>

        </select></li>

This is my process.php code:

if(isset($_GET["uDraft"])){
$draft= $_GET["uDraft"];
}
echo "I want to output **$draft var** as the value they choose so it shows                       the choice in a paragraph that is pre-written"; 

All of my other text boxes work, I just cannot seem to get the value from the select, so that I can show what it says in the text, into the paragraph. I also had a select for wins, but gave up when I couldn't figure out how to grab the value. I know I can use radio buttons, but I am trying to learn how to grab the value from the drop down. Any help would be greatly appreciated.

You need to give your dropdown a name:

HTML:

<li>
   <select name="uDraft">
      <option value="Draft Offense">Draft Offense</option>
      <option value="Draft Defense">Draft Defense</option>
      <option value="Trade them, we can't pick good anyways">Trade them,  we can't pick good anyways</option>

   </select>
</li>

PHP:

if(isset($_GET["uDraft"])){
    $draft= $_GET["uDraft"];
    echo $draft;
}  

1st you have simple html errors, closing the select tag early, no name on select and closing the options tags incorrectly. It should be:

<select id="uDraft" name="uDraft">

    <option value="Draft Offense">Draft Offense</option>
    <option value="Draft Defense">Draft Defense</option>
    <option value="Trade them, we can't pick good anyways">Trade them,  we can't pick good anyways</option>

</select>

Then in php, you need to handle the case when the page loads, so there is no get data:

if(isset($_GET["uDraft"])){
    $draft= $_GET["uDraft"];
}else{
    $draft = 'DEFAULT VALUE GOES HERE';
}
echo "I want to output **$draft var** as the value they choose so it shows";  

This could be handled with a ternary if as well:

$draft = isset($_GET['uDraft'])? $_GET['uDraft'] : 'DEFAULT';