tags:

views:

126

answers:

2

I am creating a virtual soda vending machine, and I am having issues with the html part of the virtual soda vending machine.

I want the user to be able to select money via a drop down list so that when the value of money is selected we sent that value to a php script that will only do stuff if selection == cost, and if selection != cost, we don't give the user a soda, we just prompt him or her for more money or give him the option to get back his/her change.

Someone was telling me that there are problems on the current html form in terms of how the user is suppose to pay for their soda.

I want to know if there is a better way to set this form up.

The max value the machine will take is a dollar, and denominations are limited to Quarters, Dimes and Nickles. Any combination of selection != cost will be disregarded by the php script and will cause me to ask the user for a new combination, preferably one that selection == cost.

   <label><b>Quarters:</b></label>
<select name="quarters" >
  <option value="25">25c</option>
  <option value="50">50c</option>
  <option value="75">75c</option>
  <option value="100">$1.00</option>
</select>
<label><b>Dimes:</b></label>
<select name="dimes" >
  <option value="10">10c</option>
  <option value="20">20c</option>
  <option value="30">30c</option>
  <option value="40">40c</option>
  <option value="50">50c</option>
  <option value="60">60c</option>
  <option value="70">70c</option>
  <option value="80">80c</option>
  <option value="90">90c</option>
  <option value="100">$1.00</option>
 </select>
 <label><b>Nickles:</b></label>
<select name="nickles" >
  <option value="5">5c</option>
  <option value="10">10c</option>
  <option value="15">15c</option>
  <option value="20">20c</option>
  <option value="25">25c</option>
  <option value="30">30c</option>
  <option value="35">35c</option>
  <option value="40">40c</option>
  <option value="45">45c</option>
  <option value="50">50c</option>
  <option value="55">55c</option>
  <option value="60">60c</option>
  <option value="65">65c</option>
  <option value="70">70c</option>
  <option value="75">75c</option>
  <option value="80">80c</option>
  <option value="85">85c</option>
  <option value="90">90c</option>
  <option value="95">95c</option>
  <option value="100">$1.00</option>
 </select>

Happy thanksgiving, and I am thankful for stackoverflow and the tremendous help you guys provide, thank your for not flaming the newb.

+1  A: 

The only way I would set up that form differently is to have some of the checks done in JavaScript beforehand. Other than that, it's set up as well as any other method.

Gausie
A: 

Except for the mispelling of "Nickel", the form looks fine to me. Just add up the variables from the form submission and use a Switch.

 $price = yourPrice;
 $amt = $_POST['quarters'] + $_POST]'nickels'] + $_POST['dimes'];

 switch($amt){
      case < $price;
      //Less than price
      break;

      case > $price;
      //Greater than price
      break;

      case == $price;
      //Exact change
      break;
 }

I'm not sure if this is exactly what you were asking, if you were more specific, I answer better.

I will change spelling for nickels, thanks.Yeah, a switch is exactly what I was thinking about to cycle through the various options and for the last case it's actually suppose to be if $selection == $cost, give the user the soda or just echo out You have purchased X soda. If $selection is > $costGive user change.And if $selection < $cost prompt user to add more money.
Newb