下拉搜索菜单列表不会丢弃在应有的位置
Lists of dropdown search menues are not dropping where they should
>我有 4 个相邻的依赖搜索下拉菜单。我有两个问题:
-
当我在任何下拉菜单中按下一个键时,mysql 连接的列表会下降但不会在实际的"输入类型搜索框"下方。
-
此外,当我在第一个菜单中按一个键时,其他菜单在下拉列表下方移动,但菜单/"输入类型搜索框"实际上应保持彼此相邻。
这可能只是一个简单的 css 问题,但是我已经尝试了很多事情,所以我发布了它很长一段时间,所以我发布了它。感谢您的帮助!
这是代码:HTML
<input type="text" class="autosuggest" id="autosuggest1" placeholder="Select Continent...">
<div class="type">
<ul class="result" id="result1"></ul>
</div>
<input type="text" class="autosuggest" id="autosuggest2" placeholder="Select Country...">
<div class="type">
<ul class="result" id="result2"></ul>
</div>
<input type="text" class="autosuggest" id="autosuggest3" placeholder="Select Area...">
<div class="type">
<ul class="result" id="result3"></ul>
</div>
<input type="text" class="autosuggest" id="autosuggest4" placeholder="Select Category...">
<div class="type">
<ul class="result" id="result4"></ul>
</div>
.CSS
#search_line{
margin-top: 20px;
display: inline;
}
.autosuggest, .type, .result{
width: 150px;
}
#autosuggest1{
padding: 4px;
border: 1px solid blue;
background: white;
float: left;
}
#autosuggest2{
padding: 4px;
border: 1px solid blue;
background: white;
float: left;
}
#autosuggest3{
padding: 4px;
border: 1px solid blue;
background: white;
float: left;
}
#autosuggest4{
padding: 4px;
border: 1px solid blue;
background: white;
float: left;
}
.result{
width: 150px;
list-style: none;
}
.result li{
padding:5px;
border:1px solid #000;
border-top: 0;
cursor: pointer;
}
.JS
$(document).ready(function() {
$('#autosuggest1').keyup(function() {
var continent = $(this).attr('value');
$.post('php/dropdown.php', {continent:continent}, function(data) {
$('#result1').html(data);
$('.result li').click(function() {
var result_value = $(this).text();
$('#autosuggest1').attr('value', result_value);
$('#result1').html('');
});
});
});
$('#autosuggest2').keyup(function() {
var country = $(this).attr('value');
$.post('php/dropdown.php', {country:country}, function(data) {
$('#result2').html(data);
$('.result li').click(function() {
var result_value = $(this).text();
$('#autosuggest2').attr('value', result_value);
$('#result2').html('');
});
});
});
$('#autosuggest3').keyup(function() {
var area = $(this).attr('value');
$.post('php/dropdown.php', {area:area}, function(data) {
$('#result3').html(data);
$('.result li').click(function() {
var result_value = $(this).text();
$('#autosuggest3').attr('value', result_value);
$('#result3').html('');
});
});
});
$('#autosuggest4').keyup(function() {
var category = $(this).attr('value');
$.post('php/dropdown.php', {category:category}, function(data) {
$('#result4').html(data);
$('.result li').click(function() {
var result_value = $(this).text();
$('#autosuggest4').attr('value', result_value);
$('#result4').html('');
$('#result4').focusout('');
});
});
});
});
这里还有PHP。
<?php
include '../core/db/connectdropdown.php';
if (isset($_POST['continent']) == true && empty($_POST['continent']) == false) {
$continent = mysql_real_escape_string($_POST['continent']);
$query = mysql_query("SELECT DISTINCT `continent` FROM `area` WHERE `continent` LIKE '$continent%'");
while (($row = mysql_fetch_assoc($query)) !== false) {
echo '<li>', $row['continent'], '</li>';
}
}
if (isset($_POST['country']) == true && empty($_POST['country']) == false) {
$country = mysql_real_escape_string($_POST['country']);
$query = mysql_query("SELECT DISTINCT `country` FROM `area` WHERE `country` LIKE '$country%'");
while (($row = mysql_fetch_assoc($query)) !== false) {
$dbcountry = $row['country'];
}
}
if (isset($_POST['area']) == true && empty($_POST['area']) == false) {
$area = mysql_real_escape_string($_POST['area']);
$query = mysql_query("SELECT DISTINCT `area` FROM `area` WHERE `area` LIKE '$area%'");
while (($row = mysql_fetch_assoc($query)) !== false) {
echo '<li>', $row['area'], '</li>';
}
}
if (isset($_POST['category']) == true && empty($_POST['category']) == false) {
$category = mysql_real_escape_string($_POST['category']);
$query = mysql_query("SELECT `category` FROM `categories` WHERE `category` LIKE '$category%'");
while (($row = mysql_fetch_assoc($query)) !== false) {
echo '<li>', $row['category'], '</li>';
}
}
?>
听起来你可能也有一些JavaScript问题。您的脚本是按 ID 还是按类追加列表的结果?只是好奇。
我没有看到您发布的 CSS 和 HTML 有任何明显的问题,但我尝试在这个小提琴中稍微更改 HTML 和 CSS 结构。也许它会为您改善事情:
http://jsfiddle.net/w8zG6/
如果你使用我的CSS/HTML会发生什么。你会得到更好的结果吗?(也许更糟?
如果这没有帮助,你能发布处理创建菜单的JavaScript吗?
编辑:
您的 PHP 似乎可能存在问题:
在其他 Ajax 处理程序代码块中,您有以下内容:
echo '<li>', $row['continent'], '</li>';
而您所在的国家/地区处理代码具有以下内容:
$dbcountry = $row['country'];
尝试将该行替换为以下内容:
echo '<li>', $row['country'], '</li>';
相关文章:
- 当使用带有Angular JS的Mapbox API时,如何自动完成位置搜索
- getDetails中引用值错误-谷歌位置搜索
- “;位置搜索框”;在Google Places API中
- JavaScript 位置搜索 URL 中的多个查询参数
- 如果当前网址不包含位置搜索,请重定向到主页
- 谷歌地图API - 多个关键字的位置搜索
- 谷歌地图搜索:调整地图大小后,位置搜索不会居中
- 谷歌地图 API v3 位置搜索与 jQuery 自动完成插件
- AngularJS$位置搜索混乱
- 谷歌位置搜索标记没有显示在地图上
- 无法在开始或位置搜索时加载KML文件以在自定义地图中工作
- 谷歌地图位置搜索框:如何重新计算pac-container的位置
- 传递一个位置.搜索参数到Jasmine (Karma)测试
- 在半径内的Html5地理位置搜索
- 使用regex从每个位置搜索字符串,以便找到重叠的匹配
- Google Drive API Node.js在特定位置搜索文件
- AngularJS美元的位置.搜索不重新加载页面
- 位置搜索类似于Groupon
- Facebook graph v2.0,按地理位置搜索/查询
- 如何在javascript、谷歌地图中使用setPanel()添加位置搜索框和文本方向