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 Simple PHP Application Integrating with PayPal HTML Forms

Charles Franklin
Charles Franklin
17,535 Points

POST vs $_POST

Ok, so I passed this code challenge for PHP regarding posting the selected flavor to process.php. However I have no idea how... The two changes I made were changing form method to "post". I get that, although I'm not quite sure why it needs to be lowercase. But then can someone explain to me why adding name to the select statement makes it work? I guess I'm not thinking 2 dimensional here (columns and rows). I'm must still be thinking in terms of single dimensional text files...

chip

<!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

In a real world scenario both method="POST" and method="post" would work because HTML is not a case sensitive markup language, lower case is simply the preferred W3C standard. The $_POST returns an array of everything that was posted, you access this by the name attribute $_POST['flavor']; without setting name="flavor" in your HTML, your $_POST['flavor']; wont exist.