Re: Re: incorrect value from form
| From: | Aziz Saleh | Date: | Wed, 24 Dec 2014 17:26:40 +0000 |
| Subject: | Re: Re: incorrect value from form | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-324155@lists.php.net to get a copy of this message | ||
On Wed, Dec 24, 2014 at 12:21 PM, Tim Dunphy <bluethundr@gmail.com> wrote:
> Hey guys,
>
> Thanks for your response. Thanks also to Ted for posting that tutorial. The
> tutorial was good, but I'm still having a hard time figuring out why the
> $find variable doesn't have the value specified in the "value" tag. Because
> it looks like the value tag in Ted's example works correctly!
>
> For example if I have this option selected:
>
> <option value = "a">I’m a regular customer</option>
>
> The contents of $find on the php page are "I'm a regular customer" and not
> the value which should be "a". And that just strikes me as odd!
>
> And if I select option a the output on the web page is the following:
>
> This is what's in the $find variable: I’m a regular customer
>
> We do not know how this customer found us.
>
> I thought I enclosed both the orderform.html and processorder.php files in
> the original email. But I guess I must not have attached one of them.
>
> Just so I don't screw that up again, here's the two files inline in the
> email! :)
>
> Neither of them is that long, so I hope no one minds.
>
> <!doctype html>
>
> <html lang="en-us">
>
> <head>
>
> <meta charset="utf-8">
>
> <title>Order Form</title>
>
> </head>
>
> <body>
>
> <form action="processorder.php" method="post">
>
> <table border="0">
>
> <tr bgcolor="#cccccc">
>
> <td width="150">Item</td>
>
> <td width="15">Quantity</td>
>
> </tr>
>
> <tr>
>
> <td>Tires</td>
>
> <td align="center"> <input type="text"
> name="tireqty" size="3"
> maxlength="3" /></td>
>
> <tr>
>
> <td>Oil</td>
>
> <td align="center"><input type="text"
> name="oilqty" size="3"
> maxlength="3" /></td>
>
> </tr>
>
> <tr>
>
> <td>Spark Plugs</td>
>
> <td align="center"><input type="text"
> name="sparkqty" size="3"
> maxlength="3" /></td>
>
> </tr>
>
> <tr>
>
> <td colspan="2" align="center"><input
> type="submit"
> value="Submit Order" /></td>
>
> </tr>
>
> <tr>
>
> <td>How did you find Bob’s?</td>
>
> <td><select name="find">
>
> <option value = "a">I’m a regular customer</option>
>
> <option value = "b">TV advertising</option>
>
> <option value = "c">Phone directory</option>
>
> <option value = "d">Word of mouth</option>
>
> </select>
>
> </td>
>
> </tr>
>
> </table>
>
> </form>
>
> </body>
> And here is the processorder.php script:
>
> tml>
> <head>
> <title>Bob's Auto Parts - Order Results</title>
> </head>
> <body>
> <h1>Bob's Auto Parts</h1>
> <h2>Order Results</h2>
> <?php
> // create short variable names
> $tireqty = $_POST['tireqty'];
> $oilqty = $_POST['oilqty'];
> $sparkqty = $_POST['sparkqty'];
> $find = $_POST['find'];
>
>
> echo '<p>Your order is as follows:</p>';
> if ($tireqty ==0) {
> echo "You did not order anything on the previous page!<br />";
> } else {
> if ($tireqty > 0)
> echo $tireqty." tires<br />";
> if ($oilqty > 0)
> echo $oilqty." bottles of oil<br />";
> if ($sparkqty > 0)
> echo $sparkqty." spark plugs<br />";
> }
>
> echo "<br /><br />";
>
> $totalqty = 0;
> $totalqty = $tireqty + $oilqty + $sparkqty;
> echo "Items ordered: " . $totalqty. "<br ./>";
>
> define('TIREPRICE', 100);
> define('OILPRICE', 10);
> define('SPARKPRICE', 4);
>
> $totalamount = $tireqty * TIREPRICE
> + $oilqty * OILPRICE
> + $sparkqty * SPARKPRICE;
>
> echo "Subtotal: $".number_format($totalamount,2)."<br />";
> $taxrate = 0.10;
> $totalamount = $totalamount * (1+ $taxrate);
> echo "Total Including Tax:
> $".number_format($totalamount, 2)."<br />";
>
> /*echo "<p>this is the $_POST[find] variable: " .
> var_dump($_POST['find'])
> . "</p>";
> echo "<p>this is the \"find\" variable: " . var_dump($find) .
> "</p>";*/
>
> echo '<p>This is what\'s in the $find variable: ' . $find .
> '</p>';
>
> /*if ($find == "I’m a regular customer") {
> echo "<p>Regular customer.</p>";
> } elseif ($find == "TV advertising") {
> echo "<p>Customer referred by TV advert";
> } elseif ($find == "Phone directory") {
> echo "<p>Customer referred by phone directory</p>";
> } elseif ($find == "Word of mouth") {
> echo "<p>Customer referred by word of mount</p>";
> } else {
> echo "<p>We do not know how this customer found us.</p>";
> }*/
>
> if ($find == "a") {
> echo "<p>Regular customer.</p>";
> } elseif ($find == "b") {
> echo "<p>Customer referred by TV advert";
> } elseif ($find == "c") {
> echo "<p>Customer referred by phone directory</p>";
> } elseif ($find == "d") {
> echo "<p>Customer referred by word of mount</p>";
> } else {
> echo "<p>We do not know how this customer found us.</p>";
> }
>
> ?>
> </body>
> </html>
>
> Furthermore, the script I'm working with is actually hanging out on the
> Internet right here:
>
> http://php.lyricgem.com/orderform.html
>
> That's in case you want to see it in action. That's just my hobby dev
> instance on the amazon free tier! Notthing there needs to be secure that
> isn't already protected by the firewall!
>
> Thanks and Merry Christmas to all!
> Tim
>
>
> On Wed, Dec 24, 2014 at 11:41 AM, Jim Giner <jim.giner@albanyhandball.com>
> wrote:
>
> > The code as posted works just fine for me. Must be something you are not
> > showing us that is affecting your html. Have you looked at the source
> code
> > in the browser window to see if it appears correctly?
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
>
> --
> GPG me!!
>
> gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
>
Try removing the spaces between value = "a" -> value="a". For some odd
reason chrome translates that for me (on windows) to:
<option value =" "a"">I’m a regular
customer</option>
Also insure that your files are all utf8 encoded.