【问题标题】:Sending Database dropdown & jQuery DatePicker data to a mySQL Database将数据库下拉列表和 jQuery DatePicker 数据发送到 mySQL 数据库
【发布时间】:2016-02-03 10:44:41
【问题描述】:

我最近遇到了一个问题,我无法解决。我有一个客户预订表格,他们会在其中获得一个下拉菜单,该菜单连接到包含治疗等的数据库,显示所有数据,我还有一个 jQuery DatePicker,并进一步计划很快实现一个 jQuery TimePicker。

当我尝试将要更新的表单提交到 mySQL 数据库时,没有任何数据通过。它甚至没有显示为数组乳清我var_dump($_POST) 整个事情。我还有一个文本区域,它说数据通过了,但实际上并没有出现在数据库中。

这里是var_dump($_POST)

这里是数据库下拉列表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 for Date 和 TIME for Time -

这是我的 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>

【问题讨论】:

  • 你必须给name输入字段&lt;input type="text" id="datepicker" name="date"/&gt;
  • @SearchAndResQ 让我试试 :)
  • 不要使用 mysql_* 。它们在 PHP7 中被完全删除。
  • @Drudge 是的,我知道,我很快就会改变。
  • 并检查一下:Keywords and Reserved Words in MySQL。字段名称datetime 可能会导致问题。

标签: javascript php jquery html mysql


【解决方案1】:

请为以下元素提供名称属性,例如:

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 变量

好的,在插入之前格式化日期和时间:

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'])) 

【讨论】:

  • 是的,它确实显示它们正在被添加,但数据库没有显示添加的时间,它打印的只是:0000-00-00。我在 mySQL 中的数据类型正确吗?
  • 是的,只是检查。我的$_POST 是这样写的:'".$_POST["Date"]."'。我将在哪里实现时间和日期格式?
  • INSERT INTO Booking_request_form (Treatment, Date, Time, Message) VALUES('".$_POST["Treatment"]."','".date('Y-m-d',strtotime($_POST["Date"]))."', '".date('H:i:s',strtotime($_POST["Time"]))."', '".$_POST["Message"]."');
  • @Filip 这样子
  • 太棒了,谢谢。如果我的问题对其他人有帮助,请竖起大拇指:)
【解决方案2】:

您的输入字段中缺少 name。 PHP 从 HTML 的 name 属性中获取 html 表单值,请参见 this doc。尝试下面的代码并尝试打印 $_POST variable 。希望这对您有所帮助。快乐的编码:)

选择您的治疗:

        <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>

【讨论】:

  • 谢谢 :) 你知道如何修复 jQuery TimePicker 吗?
  • PHP 是 :) jQuery 不是。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 2013-08-20
  • 2021-08-21
相关资源
最近更新 更多