0

I have read the existing answers but they make no sense in how to implement them. How can I get the value from a drop down list in jquery mobile and save to mysql database? I access the drop down (which is in a form), make my selection and then would like to submit the form to be stored in a database. Can someone please show me an example of how this can be done? Thank you.

    <form action="insert.php" method="post">
<legend>Date:</legend>   
        <label for="select-choice-month">Month</label><!-- etc. -->
        <select name="select-choice-month" id="select-choice-month">
            <option>Month</option>
            <option value="jan">January</option>
            <option value="feb">February</option>
            <option value="mar">March</option>
            <option value="apr">April</option>
            <option value="may">May</option>
            <option value="jun">June</option>
            <option value="jul">July</option>
            <option value="aug">August</option>
            <option value="sep">September</option>
            <option value="oct">October</option>
            <option value="nov">November</option>
            <option value="dec">December</option>         
        </select>

        <label for="select-choice-day">Day</label><!-- etc. -->
        <select name="select-choice-day" id="select-choice-day">
            <option>Day</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
            <option value="13">13</option>
            <option value="14">14</option>
            <option value="15">15</option>
            <option value="16">16</option>
            <option value="17">17</option>
            <option value="18">18</option>
            <option value="19">19</option>
            <option value="20">20</option>
            <option value="21">21</option>
            <option value="22">22</option>
            <option value="23">23</option>
            <option value="24">24</option>
            <option value="25">25</option>
            <option value="26">26</option>
            <option value="27">27</option>
            <option value="28">28</option>
            <option value="29">29</option>
            <option value="30">30</option>
            <option value="31">31<option>     
        </select>
<input type="submit">
</form>

insert.php

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO test ( month, day)
VALUES
('$_POST[select-choice-month]', '$_POST[select-choice-day]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);

Thank you very much for your help.

Rikk
  • 1

2 Answers2

0

In your SQL query, you've got 3 parameters in the first portion of the query but are only supplying 2 values. (text, month, day) vs (month, day) in this instance. EDIT: The sample was changed to solve this issue.

Additionally, passing variables directly from $_POST into a query without any kind of sanitation has the chance to make you vulnerable to a SQL injection attack.

0

try to do it with ajax

    $.ajax({

      url:  "insert.php",
      type: "POST",
      cache: false,
      data: $('#form').serialize(),
      dataType: "json",
      beforeSend:function() {

      },

      success:function(data) {

      },

      error:function(e) {
        console.log(e.responseText);
      },

      complete:function() {

      },
      timeout: 10000


    });//ajax ends
Victorino
  • 1,623
  • 11
  • 22