Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Build a Basic PHP Website (2018) Adding a Basic Form HTML Forms

Na Liu
Na Liu
2,753 Points

Why the <select> tag needs its name attribute to be "flavor"? HTML Form Task 3 of 4

The hint says the id attribute is not passed through submit, but why <select> tag's name attribute has to be set?

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Ye Olde Ice Cream Shoppe</title>
</head>
<body>

    <p>Your order has been created. What flavor of ice cream would you like to add to it?</p>

    <form method="post" action="process.php">

        <label for="flavor">Flavor</label>
        <select id="flavor" name="flavor">
            <option value="">&#8212; Select &#8212;</option>
            <option value="Vanilla">Vanilla</option>
            <option value="Chocolate">Chocolate</option>
            <option value="Strawberry">Strawberry</option>
            <option value="Cookie Dough">Cookie Dough</option>
        </select>

        <input type="submit" value="Update Order">

    </form>

</body>
</html>

1 Answer

Benjamin Larson
Benjamin Larson
34,055 Points

You don't need to alter the attributes on your <select> statements. The hint says that you "need to add a new HTML element with three attributes". You need to add a new input tag with the type attribute set to hidden. You'll also need to assign it attributes for the correct name and value. This is will get you started-

<input type="hidden" name="" value="">
Na Liu
Na Liu
2,753 Points

Thanks a lot~ But I dont think we are talking about the same question. There may be a problem of the order which question is shown. The question is "Next, we need the flavor selected in the dropdown to be submitted to this process.php file. We need to be able to access it in the "flavor" element of the $_POST array, like this: $_POST["flavor"]. Change the HTML so that the value for "flavor" is submitted to the process.php file. (Hint. An "id" attribute on a form input can be used by JavaScript and CSS but is not passed through the form submission.)". And I add name attribute in <select> tag and set it "flavor", then it let me pass. But I dont understand why T.T

Benjamin Larson
Benjamin Larson
34,055 Points

Sorry- I did not read your question carefully enough! The reason is that when the form is submitted, you will need a way to reference the submitted values later on (in this case, via process.php). As the challenge mentioned, CSS and JS can reference a given input by the id attribute but since the id attribute is not submitted with the form, PHP will not have a way to receive that information. PHP needs the name attribute (which will passed/submitted as form data) in order to reference the value and do something with it later.