很抱歉我的英语,但我需要一些帮助。我正在试着根据汽车的制造商和型号制作一个层叠的typeahead。这是我的代码(我使用的所有这些代码都来自于我从web上获得的示例,我是web编程的初学者。
nuevo_coche.php:...
.marcas,.modelos {
background-color:#fff;
font:8pt helvetica;
color:#000;
width:250px;
border-color:#696969;
border-style :solid;
border-width :1px;
height:15pt;
}
.tt-dropdown-menu {
font:8pt helvetica;
width: 250px;
margin-top: 5px;
padding: 8px 12px;
background-color: #fff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
color: #000;
background-color: #e0ffff;
}
</style>
<script language="javascript">
$(document).ready(function() {
$('input.marcas').typeahead({
name: 'marcas',
remote : './marcas.php?query=%QUERY'
});
$('input.modelos').typeahead({
name: 'modelos',
remote : './modelos.php?query=%QUERY&nombremarca=' + $('input.marcas').val()
});
})
function cancelar() {
location.href="index.php";
}
...
<tr>
<td width="15%">Marca</td>
<td width="43%"><input id="marcas" type="text" name="marcas" size="20" class="marcas" placeholder="Introduce marca"></td>
</tr>
<tr>
<td width="15%">Modelo</td>
<td width="43%"><input id="modelos" type="text" name="modelos" size="20" class="modelos" placeholder="Introduce Modelo"></td>..。
marcas.php:
include ("../conectar.php");
if (isset($_REQUEST‘’query‘)){
$query = $_REQUEST['query'];
$sql = mysql_query ("SELECT * FROM marcas WHERE nombremarca LIKE '%{$query}%'");
$array = array();
while ($row = mysql_fetch_assoc($sql)) {
$array[] = $row['nombremarca'];
}
echo json_encode ($array); //Return the JSON Array}
modelos.php
include ("../conectar.php");
if (isset($_REQUEST‘’query‘)){
$query = $_REQUEST['query'];
$nombremarca = $_REQUEST['nombremarca'];
$sel_marcas="SELECT * FROM marcas WHERE nombremarca='$nombremarca'";
$rs_marcas=mysql_query($sel_marcas);
$codmarca=mysql_result($rs_marcas,0,"codmarca");
$sql = mysql_query ("SELECT * FROM modelos WHERE nombremodelo LIKE '%{$query}%' AND codmarca='$codmarca'");
$array = array();
while ($row = mysql_fetch_assoc($sql)) {
$array[] = $row['nombremodelo'];
}
echo json_encode ($array); //Return the JSON Array}
如果我放入行-- remote : './modelos.php?query=%QUERY&nombremarca=Ford' -- (例如),它可以正常工作,但我不知道怎么做。在此之前非常感谢。
发布于 2014-01-21 21:34:34
这取决于input.marcas的类型。我认为你需要这样的东西:
$('input.modelos').typeahead({
name: 'modelos',
remote: './modelos.php?query=%QUERY&nombremarca=' + $('input.marcas').val()
});如果参数是在开始时计算的,那么$('input.marcas').val()看起来是固定的,所以你必须找到一种方法让它调用一个函数来获得结果。
所有的文档都在这里,所以里面会有一些东西可以帮助你。
发布于 2014-01-22 19:39:30
好吧,我有一个解决方案,也许不是最好的方法,但它是有效的:
function lanzarmarca() {
if (document.getElementById("var").value == 0) {
$('input.marcas').typeahead({
name: 'marcas',
remote : './marcas.php?query=%QUERY'
});
document.getElementById("marcas").focus();
}
if (document.getElementById("var").value == 1) {
focus();
}
}
function lanzarmodelo() {
$('input.modelos').typeahead({
name: 'modelos',
remote : './modelos.php?query=%QUERY&nombremarca=' + $('input.marcas').val()
});
document.getElementById("modelos").focus();
document.getElementById("var").value=1;
}
function focus() {
if (document.getElementById("var").value == 1) {
document.getElementById("marcas").value = "";
document.getElementById("var").value=0;
window.location.reload();
}
}
function load() {
with (document.getElementById("marcas")) {
selectionStart = selectionEnd = value.length;
focus();
}
}
</script>
</head>
<body onload="load()">..。
<tr>
<td width="15%">Marca</td>
<td width="43%"><input id="marcas" type="text" class="cajaGrande" name="marcas" size="20" class="marcas" placeholder="Introduce marca" onkeypress="lanzarmarca()"><input id="var" type="hidden" name="var" value="0"></td>
</tr>
<tr>
<td width="15%">Modelo</td>
<td width="43%"><input id="modelos" type="text" name="modelos" size="20" class="modelos" placeholder="Introduce Modelo" onkeypress="lanzarmodelo()"></td>我尝试使用onfocus而不是onkeypress,但是typeahead脚本中断了,或者用“”重置了typeahead.destroy o input.marcas.val() ...但是,这些都不能很好地工作。
希望它能帮上忙,或者有人能找到更好的方法来做这件事。
谢谢你的帮助,大卫,这对我真的很有帮助。
https://stackoverflow.com/questions/21258433
复制相似问题