我试图将两个包含json数据的下拉列表提交到我的数据库表中。我可以得到插入到表中的数据,但是'date'和'time'列显示id和父id,而不是下拉列表中可用的日期和时间。有人能告诉我这是为什么吗(主要相关代码(显示)
<?php
session_start();
include('includes/config.php');
error_reporting(0);
if (isset($_POST['submit'])) {
$arenadate = $_POST['date'];
$arenatime = $_POST['time'];
$useremail = $_SESSION['login'];
$sql = "INSERT INTO tblbooking(userEmail,ArenaDate,ArenaTime) VALUES(:useremail,:date, :time)";
$query = $dbh->prepare($sql);
$query->bindParam(':useremail', $useremail, PDO::PARAM_STR);
$query->bindParam(':date', $arenadate, PDO::PARAM_STR);
$query->bindParam(':time', $arenatime, PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if ($lastInsertId) {
echo "<script>alert('Booking successful.');</script>";
}
else {
echo "<script>alert('Something went wrong. Please try again');</script>";
}
}
?>
<form action="" method="post">
<div class="contact_form gray-bg">
<div class="form-group">
<label for="" class="control-label">Select Date</label>
<select name="date" id="date" class="form-control white_bg"
data-width="120px" style="color:black" required>
<option value="">Select Date</option>
</select>
</div>
<div class="form-group">
<label for="" class="control-label">Select Time</label>
<select name="time" id="time" class="form-control white_bg"
data-width="120px" style="color:black" required>
<option value="">Select Time</option>
</select>
</div>
<?php if ($_SESSION['login']) {
?>
<div class="modal-footer text-center">
<input type="submit" name="submit" value="Confirm Booking"
class="btn btn-xs uppercase">
</div>
<?php } else { ?>
<a href="#loginform" class="btn btn-xs uppercase" data-toggle="modal"
data-dismiss="modal">Login To Book Seat</a>
<?php } ?>
</div>
</div>
</div>
</form>
</div>
</div>
</section>
<script>
$(document).ready(function (e) {
function get_json_data(id, parent_id) {
var html_code = '';
$.getJSON('date_list.json', function (data) {
ListName = id.substr(0, 1).toUpperCase() + id.substr(1);
html_code += '<option value="">Select ' + ListName + '</option>';
$.each(data, function (key, value) {
if (value.parent_id == parent_id) {
html_code += '<option value="' + value.id + '">' + value.avail + '</option>';
}
});
$('#' + id).html(html_code);
});
}
get_json_data('date', 0);
$(document).on('change', '#date', function () {
var date_id = $(this).val();
if (date_id != '') {
get_json_data('time', date_id);
} else {
$('#time').html('<option value="">Select Time</option>');
}
});
});
</script>
2条答案
按热度按时间7kjnsjlb1#
不要设置
value
属性<option>
标记,除非希望窗体接收该值而不是可见文本。如果你在一个
<select name="date">
:然后投递表格就会送达
$_POST['date'] = ''
.如果你写:
然后投递表格就会送达
$_POST['date'] = 'Select an option'
.在表单传递方面,永远不需要将选项文本作为值复制。
如果要在每个
<option>
tag,我会给你和acmofocord一样的建议因为data-
属性对于它们可以保存的值是干净和灵活的。具体来说,我是说:
然后:
oiopk7p52#
您正在覆盖#date中的空选项,因此html中实际上不需要该选项。您可以更改以下行:
收件人:
“date”和“time”的过帐值将是“selected options value”属性,但这将中断基于该id选择日期和获取时间的过程。在这种情况下,可以添加数据id属性并使用该属性获取时间,这意味着以下代码将从:
收件人: