2014-01-21 9 views
0

죄송하지만 내 영어는 유감이지만 도움이 필요합니다. 나는 자동차 제조업체와 모델을 기반으로 캐스 캐 이드 형제를 만들려고 노력하고 있습니다. 여기 내가 가지고있는 코드입니다 (내가 웹에서 얻을 예에서 사용 된 모든 코드, 나는 웹 프로그래밍 초보자 해요Typeahead, cascade, mysql

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 :

포함 ("../conectar.php");

경우 (는 isset ($ _ REQUEST [ '질의'])) {

3,691,363,210
$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는

는 ("../conectar.php")을 포함한다;

경우 (는 isset ($ _ 요청 [ '쿼리'])) 내가 선 -- remote : './modelos.php?query=%QUERY&nombremarca=Ford' -- (예를 들어), 그것을 잘 작동에 넣어하지만 난 잘 모릅니다 경우 {

$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 

}

그것을하는 방법. 많은 감사드립니다.

답변

0

input.marcas 유형에 따라 다릅니다. 난 당신과 같이 할 생각 : 매개 변수가 시작시 평가되는 경우

$('input.modelos').typeahead({ 
    name: 'modelos', 
    remote: './modelos.php?query=%QUERY&nombremarca=' + $('input.marcas').val() 
}); 

를 다음 $ 당신이 만드는 방법을 찾아야 할 것이다, 그래서 ('input.marcas') 발()는 고정 나타납니다. 결과를 얻기위한 함수를 호출합니다.

모든 문서가 여기에 있으므로 도움을 줄 수있는 내용이 있습니다.

https://github.com/twitter/typeahead.js

+0

나는 이것을 시도했지만 작동하지 않을 것이다. 어쩌면 나는 더 많은 코드를 넣어야한다. – teikuei

+0

나는 문서를 보았지만 분명히 아무것도 알지 못했다. 내가 말했듯이 나는 이것에 초보자이다. 다소 원하는 것을하는 예제에서 ... : p – teikuei

0

글쎄, 아마 그것을 할 가장 좋은 방법은 해제되지 않습니다 솔루션을 가지고 있지만 작동합니다

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> 

내가했습니다 onkeypress 대신 onkeypress를 사용하려고 시도했지만 typeahead 스크립트가 중단되거나 typeahead.destroy o input.marcas.val() reset ""...하지만 아무 문제가 없습니다.

도움을 주거나 다른 사람이이 작업을 수행하기를 바랍니다.

다윗, 정말 도움이됩니다.