我最近遇到了一个问题,我无法解决。我有一个客户预订表,在那里他们得到一个下拉菜单,它连接到一个显示所有数据的处理等数据库,我还有一个jQuery DatePicker,并且还计划很快实现一个jQuery TimePicker。
当我尝试将要更新的表单提交到mySQL数据库时,没有任何数据通过。它甚至不会显示为一个阵列,而是var_dump($_POST)
整个事物。我也有一个textarea,它说数据通过,但它实际上并没有出现在数据库中。
以下是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
表示日期,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>
答案 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>