PHP - Necesito ayuda con algunos listbox

 
Vista:

Necesito ayuda con algunos listbox

Publicado por Jorge Alberto (77 intervenciones) el 19/02/2005 21:50:20
El siguiente codigo al momento que correo en el primer listbox me muestra todas las diferentes marcas que hay en un catalogo, al momento que escojo una marca en el siguiente listbox me muestra todos los modelos de la marca que escoji en el primero listbox, PERO mi problema es que la marca se borra.
<?
$conexion = odbc_connect("base","","","");
$rs= odbc_exec($conexion,"select * from catalogo");
$sql1="select distinct marca from catalogo ORDER BY marca";
$rs1=odbc_exec($conexion,$sql1);
echo "Marca : ";
ECHO "<FORM NAME=combo1 METHOD='GET'>";
echo "<SELECT name=marcas ONCHANGE='submit()'> ";
while (odbc_fetch_row($rs1))
{
echo "<OPTION>".odbc_result($rs1,"marca")."</OPTION>";
}
echo "</SELECT>";
ECHO "</FORM>";

$buscarmarca=$_GET['marca'];
$sql2="select distinct modelo from catalogo where marca='$buscarmarcas'";
$rs2=odbc_exec($conexion,$sql2);
echo "Modelo : ";
ECHO "<FORM NAME=combo2 METHOD='GET'>";
echo "<SELECT name=modelo ONCHANGE='submit()'> ";
while (odbc_fetch_row($rs2))
{
echo "<OPTION>".odbc_result($rs2,"modelo")."</OPTION>";
}
echo "</SELECT>";
ECHO "</FORM>";
odbc_close_all();
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Necesito ayuda con algunos listbox

Publicado por ile (61 intervenciones) el 21/02/2005 08:31:51
Consejos:
1. No tengas un FORM por cada combo que despliegues. Escribe uno sólo y luego pregunta por el seteo de las variables de los combos.
2. Con import_request_variables ('G'); obtienes todas las variables que pasas por GET, y te ahorras los $buscarmarca=$_GET['marca']. Lo colocas al principio de tu script.
3. Haz algo del estilo

echo '<table><FORM METHOD="GET" ACTION="tuweb.php"';
echo '<tr><td> Marca: </td>';
echo '<td><SELECT NAME="marca" ONCHANGE="submit()">';

// Capturar la marca
if (isset($marca)) // si la marca está seleccionada, la cargas en $marcadefecte
$marcadefecte = $marca;
else
$marcadefecte = "";

$sql="select distinct marca from catalogo ORDER BY marca";
$result=odbc_exec($db,$sql); // Ejecutar la consulta
$marca_seleccionada = 0;
While ( odbc_fetch_row ($result) )
{
// Si no esta definida, tomar la primera.
if ( !isset($marcadefecte))
$marcadefecte = odbc_result($result,1);

if ( odbc_result($result,1) == $marcadefecte )
{
$selected = "SELECTED"; // para que aparezca marcada en el combo
$marca_seleccionada = 1;
}
else
$selected = "";

$marcaAux =odbc_result($result,1);
echo '<OPTION VALUE="'.$marcaAux.'" '.$selected.'> '.$marcaAux.'</OPTION>';
}
echo '</SELECT></td>';
echo '</tr><tr>';

if ( $marca_seleccionada == 1 ) // había seleccionado antes la marca, entonces ahora a desplegar lo // siguente que en tu caso es el MODELO
{
// preguntas por el modelo filtrando teniendo en cuenta la MARCA y haces lo mismo que para ella
}

echo'</tr></table></FORM>';

saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar