Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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.