1

I need to store the user selected option when chosen from my drop down select box, and when submitted in my form, store in my MYSQL database.

I already have information being stored and displayed fine, i am just trying to add more content now. I have tried using the same method, but i cant get it to store what i want.

The select drop down looks like this inside my form:

  <span> Difficulty: </span> 
   <select>
              <option type="text" name="easy" id="easy" value="easy">easy</option>
              <option type="text" name="comfortable" id="comfortable" value="comfortable">comfortable</option>
              <option type="text" name="hard" id="hard" value="hard">hard</option>
              <option type="text" name="veryhard" id="veryhard" value="veryhard">very hard</option>
              <option type="text" name="hardest" id="hardest" value="hardest">Hardest ride in the world!</option>
            </select>
  </label>

and i am trying to send it using this:

    $difficulty = mysql_real_escape_string($_POST['difficulty']);

Using this query:

$query = sprintf("INSERT INTO markers (difficulty) VALUES ('%s')", $difficulty);

When my table is set up as INT, 20, allow null, it stores 0 in the database. and when i set it up VARCHAR, 20, allow null, it stores a blank field.

i want it to store whichever value the user chooses, i.e easy, hard, very hard etc.

Thanks very much

Ed Tibbitts
  • 51
  • 1
  • 2
  • 7

4 Answers4

4
$_POST['difficulty']

Would not hold a value as the SELECT has not been given a 'name'. Try

<select name="difficulty">
Christopher
  • 1,104
  • 1
  • 8
  • 17
2

Your problem is the name attribute in the HTML. It should be 'difficulty' for the select tag and not be in the option tags.

You also don't need type="text" as that is the default anyway. I suspect you don't need the id's either but of course we can't see the rest of the code so you might use them elsewhere.

<span> Difficulty: </span> 
<select name="difficulty">
  <option value="easy">easy</option>
  <option value="comfortable">comfortable</option>
  <option value="hard">hard</option>
  <option value="veryhard">very hard</option>
  <option value="hardest">Hardest ride in the world!</option>
</select>
Nick Brunt
  • 8,858
  • 8
  • 50
  • 81
0

You need to change the name for HTML <select name="difficulty">. And then you will have in $_POST['difficulty'] the choosen value.

http://www.w3schools.com/TAGS/tag_Select.asp

morandi3
  • 1,015
  • 3
  • 13
  • 27
0
<select name="difficulty">
    <option type="text" id="easy" value="easy">easy</option>
    <option type="text" id="comfortable" value="comfortable">comfortable</option>
    <option type="text" id="hard" value="hard">hard</option>
    <option type="text" id="veryhard" value="veryhard">very hard</option>
    <option type="text" id="hardest" value="hardest">Hardest ride in the world!</option>
</select>

You don't give individual <option/> tags a name attribute.

Mike Thomsen
  • 35,490
  • 10
  • 55
  • 80