我的问题是我可以从数据库中获取<li>
标记的值,但无法弄清楚如何使用它使用ajax和php填充另一个下拉列表? (我不是要创建选择下拉列表)
我有2个下拉列表,第一个下拉列表选择MOVIE,第二个下拉列表选择DATE。因此,当我选择“电影”时,第二个下拉列表将填充我选择的电影的日期。
我找到了使用<select>
标记和<option>
标记的解决方案。但是,这并不能真正解决我的问题。我真正想做的是将图像添加到下拉列表中。
那么如何使用下拉列表中的<ul>
标记和<li>
标记执行此操作?
下面是我的代码:
HTML:
////////////////select movie//////////////////
<div class="select_movie" style="float:left;">
<div class="nice-select dropdown-toggle" id="selectmovie" data-toggle="dropdown" tabindex="0" style="margin-left: 200px; margin-top: 29px;"><span class="current">Select Movie</span>
<ul class="dropdown-menu scrollable-menu ul_movie" id="m_movie" >
<?php
$sql = "SELECT id,name,date,time,image FROM movie";
$res = mysqli_query($conn, $sql);
if(mysqli_num_rows($res) > 0) {
while($row = mysqli_fetch_object($res)) {
echo '<li data-value="' . $row->id . '"class="option" style="margin-top:10px; margin-bottom:10px;"><img src="' . $row->image . '" style="width:50px; height:80px; margin-right:10px;">' . $row->name . '</li>';
}
}
?>
</ul>
</div>
</div>
////////////////select date//////////////////
<div class="select_date" style="float:left">
<div class="nice-select dropdown-toggle" data-toggle="dropdown" tabindex="0" style="margin-left: 150px; margin-top: 29px;"><span class="current">Select Date</span>
<ul class="dropdown-menu scrollable-menu ul_date" id="selectdate" >
</ul>
</div>
</div>
Javascript:
<script>
$(document).on('click', '.ul_movie li', function () {
// alert('movie');
var movie_id = $(this).attr('data-value');
console.log(movie_id)
if(movie_id !== "") {
$.ajax({
url:"get_datetime.php",
data:{m_id:movie_id},
type:'POST',
success:function(response) {
// var resp = $.trim(response);
$('.ul_date li').html(response);
}
});
}
else {
$('.ul_date li').html("<li value=''>------- Select --------</li>");
alert("tghhh") ;
}
});
</script>
PHP:
<?php include("database/conn.php"); ?>
<?php
if(isset($_POST['m_id'])) {
$sql = "select `id`,`date` from movie where
`id`='".mysqli_real_escape_string($conn, $_POST['m_id'])."'";
$res = mysqli_query($conn, $sql);
//to test what value given
echo "<option value=''>".$_POST['m_id']."</option>";
if(mysqli_num_rows($res) > 0) {
echo "<option value=''>------- Select --------</option>";
while($row = mysqli_fetch_object($res)) {
// echo "<li data-value='" . $row->id . '"class="option" >' . $row->date . '</li>';
echo "<li data-value='".$row->id."' class='option'>".$row->date."</li>";
}
}
else{
echo "<option value=''>No showing time</option>";
}
} else {
header('location: ./');
}
?>
最佳答案
使用$('#selectdate').html(response);
代替$('.ul_date li').html(response);
关于javascript - 从第一个下拉列表中选择后,如何将li值填充到另一个下拉列表中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46909047/