发送数据库下拉列表& jQuery DatePicker数据到mySQL数据库

时间:2016-02-03 10:44:42

标签: javascript php jquery html mysql

我最近遇到了一个问题,我无法解决。我有一个客户预订表,在那里他们得到一个下拉菜单,它连接到一个显示所有数据的处理等数据库,我还有一个jQuery DatePicker,并且还计划很快实现一个jQuery TimePicker。

当我尝试将要更新的表单提交到mySQL数据库时,没有任何数据通过。它甚至不会显示为一个阵列,而是var_dump($_POST)整个事物。我也有一个textarea,它说数据通过,但它实际上并没有出现在数据库中。

以下是var_dump($_POST)

enter image description here

以下是数据库下拉列表 PHP 代码:

<!-- All database connection stuff followed by the following: -->

$query = "SELECT * FROM `Treatments`";

$result = mysql_query($query, $con);
$options = "";

if (!$result){
    die("No results found.");
}

while ($row = mysql_fetch_array($result)){
    $options .= "<option>$row[1]</option>";
}


?>

以下是插入我的数据库的内容:
- 我将mySQL中的DataTypes设置为DATE表示日期,TIME表示时间 -

enter image description here

这是我的 PHP

<?php
var_dump($_POST);

$hostname = 'hostname';
$dbname = 'dbname';
$username = 'username';
$password = 'password';

$con=mysql_connect($hostname,$username,$password) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db($dbname,$con) or die("Failed to connect to MySQL: " . mysql_error());

$insert = "INSERT INTO Booking_request_form (Treatment, Date, Time, Message) VALUES('".$_POST["Treatment"]."','".$_POST["Date"]."', '".$_POST["Time"]."', '".$_POST["Message"]."')";

var_dump($insert);
$handle = mysql_query($insert);
var_dump($handle);

?>

这是我的 HTML 表单:
我已经注释掉了TimePicker,因为它对我没用。

<form action="treatment_form.php" method="post"> 
    <div class="heading1">
        <p>Select Your Treatment:</p>
    </div>

    <div class="dropdown">
        <select><?php echo $options; ?></select>
    </div>

    <div class="heading2">
        <p>Select Your Date:</p>
            <input type="text" id="datepicker"/>
                <script>
                $(function() {
                    $( "#datepicker" ).datepicker({dateFormat: 'dd/mm/yy'});
                });
                </script>
    </div>

    <div class="heading3">
        <p>Select Your Time:</p>
            <input type="text" id="timepicker"/>
            <!-- <script>
            $(function($) {
                $(function() {
                    $('input.timepicker').timepicker();
                });
            })(jQuery);
            </script> -->
    </div>

    <div class="heading4">
        <p>Add a message for our Staff:</p>
        <textarea name="message" placeholder="Enter Message..."></textarea>
    </div>

    <div class="submit">
        <input type="submit" value="Request Booking" id="Submit">
    </div>
</form>

2 个答案:

答案 0 :(得分:2)

请为以下元素提供name属性:

1. <input type="text" id="datepicker  name="date_attr"/>
2. <input type="text" id="timepicker"  name="time_attr"/>
3. <div class="dropdown">
        <select name="treatment"><?php echo $options; ?></select>
    </div>

然后尝试打印$ _POST变量

好的,格式化日期&amp;插入前的时间:

1) $_POST['date_attr'] to date('Y-m-d',strtotime($_POST['date_attr']))
2) $_POST['time_attr'] to date('H:i:s',strtotime($_POST['time_attr'])) 

答案 1 :(得分:2)

您输入的fiedls中缺少名称。 PHP从HTML的 name 属性获取html表单值,请参阅this doc。尝试以下代码并尝试打印$ _POST变量。希望这有帮助。快乐编码:)

                             

选择您的治疗方法:

            

        <div class="dropdown">
            <select name="option">
<?php echo $options; ?>
</select>
        </div>

        <div class="heading2">
            <p>Select Your Date:</p>
                <input type="text" id="datepicker" name="date"/>
                    <script>
                    $(function() {
                        $( "#datepicker" ).datepicker({dateFormat: 'dd/mm/yy'});
                    });
                    </script>
        </div>

        <div class="heading3">
            <p>Select Your Time:</p>
                <input type="text" id="timepicker" name="time"/>
                <!-- <script>
                $(function($) {
                    $(function() {
                        $('input.timepicker').timepicker();
                    });
                })(jQuery);
                </script> -->
        </div>

        <div class="heading4">
            <p>Add a message for our Staff:</p>
            <textarea name="message" placeholder="Enter Message..."></textarea>
        </div>

        <div class="submit">
            <input type="submit" value="Request Booking" id="Submit">
        </div>
    </form>