Foros del Web » Programando para Internet » PHP »

Ayuda ComboSelect

Estas en el tema de Ayuda ComboSelect en el foro de PHP en Foros del Web. Hola a todos Mi consulta es la siguiente Tengo una seleccion que llama la funcion del AJAX para mostrar los resultados. Mi pregunta es como, ...
  #1 (permalink)  
Antiguo 11/02/2010, 14:08
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Ayuda ComboSelect

Hola a todos

Mi consulta es la siguiente

Tengo una seleccion que llama la funcion del AJAX para mostrar los resultados.
Mi pregunta es como, hacer para mostrar solo lo que he seleccionado, el campo seleccion
me arroja los resultados de todas las marcas hasta ahi bien, pero al seleccionar
una marca me arroja todas las marcas, y lo que yo quiero es que solo me arroje los
resultados que yo he seleccionado.

Código PHP:

Seleccion de Marcas
Los que tienen las comillas son los resultados de seleccion:

Marcas------------------> "Nissan-Skylinen"
Marcas------------------> "Nissan-Qashqai"

Marcas------------------> "Wolsvagen-Crossfox"
Marcas------------------> "Wolsvagen-Gol"

<select name="suid" onChange="showUser(this.value)">
<option value=''> Seleccionar </option>
<?
include_once('ccccccconeexxxxionnnnn.php');
$sql mysql_query("SELECT * FROM marcas INNER JOIN subcategorias ON marcas.suid=subcategorias.suid WHERE marcas.suid='".$_GET['suid']."' ORDER BY subcategorias.suid");
while(
$row mysql_fetch_array($sql))  { 
echo 
"<option value=$mid>".$row["nombre_marcas"]."</option>";   }
?> 
</select>

Llamando AJAX
<div id="txtHint">  Aqui muestra el resultado de seleccion  <div>

<? 
// resultado de seleccion
// seleccion.php
//
include_once('ccccccconeexxxxionnnnn.php');
$suid $_GET["suid"];
$sql2 mysql_query("SELECT * FROM marcas");
while(
$row mysql_fetch_array($sql2))  { 
echo 
" Marcas: ".$row["nombre_marcas"]." ";   }
?> 



<?
//   TABLAS
//      "producto" 
//      idp 
//      titulo 
//      cid 
//      suid 
//      mid 
//      fotoproducto 
//      PRIMARY KEY  (idp)
//    "categorias" 
//      cid 
//       nombre_categoria 
//    PRIMARY KEY (cid)
//    "subcategorias" 
//    suid 
//      cid
//    nombre_subcategoria 
//    PRIMARY KEY (suid)
//    "marcas" 
//      mid 
//      suid 
//      nombre_marcas varchar
//      PRIMARY KEY  (mid)
?>

Código:
<script type="text/jscript">
/* FUNCION AJAX */
var xmlhttp;

function showUser(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("El navegador no admite HTTP Request");
  return;
  }
var url="seleccion.php";
url=url+"?suid="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}
</script>
  #2 (permalink)  
Antiguo 11/02/2010, 15:24
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Ayuda ComboSelect

Hola pilucho,

Cita:
echo "<option value=$mid>".$row["nombre_marcas"]."</option>";
El valor de $mid de donde lo coje??

saludos

Última edición por santris; 11/02/2010 a las 15:40
  #3 (permalink)  
Antiguo 12/02/2010, 15:04
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Ayuda ComboSelect

Cita:
Iniciado por santris Ver Mensaje
Hola pilucho,



El valor de $mid de donde lo coje??

saludos
Hola Santris

El Valor $mid es el ID de la tabla Marcas
  #4 (permalink)  
Antiguo 12/02/2010, 18:04
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Ayuda ComboSelect

No entiendo,

Si estás recorriendo las filas con un while e insertando un resultado en el option value del select, lo normal sería:

Código PHP:
echo "<option value=".$row["id_marca"].">".$row["nombre_marcas"]."</option>"
??

Última edición por santris; 12/02/2010 a las 18:14
  #5 (permalink)  
Antiguo 12/02/2010, 20:32
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Ayuda ComboSelect

Cita:
Iniciado por santris Ver Mensaje
No entiendo,

Si estás recorriendo las filas con un while e insertando un resultado en el option value del select, lo normal sería:

Código PHP:
echo "<option value=".$row["id_marca"].">".$row["nombre_marcas"]."</option>"
??
Claro es lo mismo que esto

si vez la tabla el "id_marca" es "mid"
Código PHP:
echo "<option value=$mid>".$row["nombre_marcas"]."</option>"
Puedo ver los resultados en el select todo bien hasta ahi, pero al seleccionar pasa por AJAX y arroja un resultado que tambien esta aqui mas arriba, el resultado del PHP me arroja toda la tabla pero lo que quiero es que me arroje solo lo que yo selecciono, lee de nuevo porfavor.

Aqui otra vez la tabla

// TABLAS
// "producto"
// idp
// titulo
// cid
// suid
// mid
// fotoproducto
// PRIMARY KEY (idp)
// "categorias"
// cid
// nombre_categoria
// PRIMARY KEY (cid)
// "subcategorias"
// suid
// cid
// nombre_subcategoria
// PRIMARY KEY (suid)
// "marcas"
// mid
// suid
// nombre_marcas varchar
// PRIMARY KEY (mid)

Última edición por pilucho; 12/02/2010 a las 20:34 Razón: ortografia
  #6 (permalink)  
Antiguo 13/02/2010, 02:07
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Ayuda ComboSelect

Cita:
echo "<option value=".$row["mid"].">".$row["nombre_marcas"]."</option>";
Cita:
Claro es lo mismo que esto

si vez la tabla el "id_marca" es "mid"

echo "<option value=$mid>".$row["nombre_marcas"]."</option>";
Evidentemente no es lo mismo, sería lo mismo si hicieses:
Código PHP:
$mid=$row["mid"]; 
Además en la comprobación solo muestras la marca, el mid no lo muestras.
  #7 (permalink)  
Antiguo 13/02/2010, 12:16
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Ayuda ComboSelect

Cita:
Iniciado por santris Ver Mensaje
Evidentemente no es lo mismo, sería lo mismo si hicieses:
Código PHP:
$mid=$row["mid"]; 
Además en la comprobación solo muestras la marca, el mid no lo muestras.

Hola Santris

He puesto lo mismo que ahi y es lo mismo, ya que el resultado del selecc como vuelvo a decir, esta funcionando, al momento de seleccionar en el otro codigo php es el problema solo me arroja todo y no lo que yo selecciono
Código PHP:
<? 
include_once('ccccccconeexxxxionnnnn.php'); 
$sql mysql_query("SELECT * FROM marcas INNER JOIN subcategorias ON marcas.suid=subcategorias.suid WHERE marcas.suid='".$_GET['suid']."' ORDER BY subcategorias.suid"); 
while(
$row mysql_fetch_array($sql))  {  
echo 
"<option value=".$row["mid"].">".$row["nombre_marcas"]."</option>";   } 
?>
  #8 (permalink)  
Antiguo 13/02/2010, 12:19
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Ayuda ComboSelect

Y cual es el otro código??

Exactamente cual es la consulta a la que le pasas el valor del select???

Última edición por santris; 13/02/2010 a las 12:47
  #9 (permalink)  
Antiguo 13/02/2010, 12:33
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Ayuda ComboSelect

Cita:
Iniciado por santris Ver Mensaje
Y cual es el otro código??

Exactamente cual es la consulta a la que le pasas el valor del select???
Código PHP:
<select name="suid" onChange="showUser(this.value)"> 
<option value=''> Seleccionar </option> 
<? 
include_once('ccccccconeexxxxionnnnn.php'); 
$sql mysql_query("SELECT * FROM marcas INNER JOIN subcategorias ON marcas.suid=subcategorias.suid WHERE marcas.suid='".$_GET['suid']."' ORDER BY subcategorias.suid"); 
while(
$row mysql_fetch_array($sql))  {  
echo 
"<option value=".$row["mid"].">".$row["nombre_marcas"]."</option>";   } 
?>  
</select>
Llamando AJAX
<div id="txtHint"> Aqui muestra el resultado de seleccion <div>
Código PHP:
<?  
// resultado de seleccion 
// seleccion.php 
// 
include_once('ccccccconeexxxxionnnnn.php'); 
$suid $_GET["suid"]; 
$sql2 mysql_query("SELECT * FROM marcas"); 
while(
$row mysql_fetch_array($sql2))  {  
echo 
" Marcas: ".$row["nombre_marcas"]." ";   } 
?>

Última edición por pilucho; 13/02/2010 a las 12:35 Razón: ORTOGRA
  #10 (permalink)  
Antiguo 13/02/2010, 12:38
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Ayuda ComboSelect

te falta la condición where.




Código PHP:
<?php
// resultado de seleccion
// seleccion.php
//
include_once('ccccccconeexxxxionnnnn.php');
$suid $_GET["suid"];
$sql2 mysql_query("SELECT * FROM  marcas where mid=$suid");
while(
$row mysql_fetch_array($sql2))  { 
echo 
" Marcas: ".$row["nombre_marcas"]." ";   }
?>

Última edición por santris; 13/02/2010 a las 12:57
  #11 (permalink)  
Antiguo 13/02/2010, 14:43
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
De acuerdo Respuesta: Ayuda ComboSelect

Cita:
Iniciado por santris Ver Mensaje
te falta la condición where.




Código PHP:
<?php
// resultado de seleccion
// seleccion.php
//
include_once('ccccccconeexxxxionnnnn.php');
$suid $_GET["suid"];
$sql2 mysql_query("SELECT * FROM  marcas where mid=$suid");
while(
$row mysql_fetch_array($sql2))  { 
echo 
" Marcas: ".$row["nombre_marcas"]." ";   }
?>
Hola Santris

Muchas Gracias por la ayuda, la verdad tu si que sabes me ha resultado como realmente queria,

Una pregunta si quiero poner paginacion como seria ya que esta por combo select

Código PHP:
echo paginar($pag$total$tampag"resultado.php?pag=".$row["mid"]." "); 

Código PHP:

<?php 
if (!isset($_GET['pag'])) $pag 1
else
$pag $_GET['pag']; 
$tampag 5;
$reg1 = ($pag-1) * $tampag;
$result mysql_query("SELECT * FROM  marcas where mid=$suid");
$total mysql_num_rows($result);
if (
mysql_num_rows($result)){ 
  echo 
"\n"
  for (
$i=$reg1$i<min($reg1+$tampag$total); $i++) {
    
mysql_data_seek($result$i);
    
$row mysql_fetch_array($result);
    echo 
" Marcas: ".$row["nombre_marcas"]." ";
  }
  echo 
"\n"
}
else
  echo 
"_";

function 
paginar($actual$total$por_pagina$enlace$maxpags=0) {
  
$total_paginas ceil($total/$por_pagina);
  
$anterior $actual 1;
  
$posterior $actual 1;
  
$minimo $maxpags max(1$actual-ceil($maxpags/2)): 1;
  
$maximo $maxpags min($total_paginas$actual+floor($maxpags/2)): $total_paginas;
  if (
$actual>1)
    
$texto "<a href=\"$enlace$anterior\">&laquo;</a> ";
  else
    
$texto "<b>&laquo;</b> ";
  if (
$minimo!=1$texto.= "... ";
  for (
$i=$minimo$i<$actual$i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  
$texto .= "<b>$actual</b> ";
  for (
$i=$actual+1$i<=$maximo$i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  if (
$maximo!=$total_paginas$texto.= "... ";
  if (
$actual<$total_paginas)
    
$texto .= "<a href=\"$enlace$posterior\">&raquo;</a>";
  else
    
$texto .= "<b>&raquo;</b>";
  return 
$texto;
}
echo 
paginar($pag$total$tampag"resultado.php?pag=".$row["mid"]." ");

?>
  #12 (permalink)  
Antiguo 13/02/2010, 15:26
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Ayuda ComboSelect

No lo he mirado mucho, pero lo primero que he visto esque llamas dos veces a al función mysql_num_rows().

Código PHP:
$total mysql_num_rows($result);
if (
mysql_num_rows($result)){ 
Prueba a cambiarlo por esto:

Código PHP:
if ($total 20){ 
  #13 (permalink)  
Antiguo 13/02/2010, 19:11
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
De acuerdo Respuesta: Ayuda ComboSelect

Cita:
Iniciado por santris Ver Mensaje
No lo he mirado mucho, pero lo primero que he visto esque llamas dos veces a al función mysql_num_rows().

Código PHP:
$total mysql_num_rows($result);
if (
mysql_num_rows($result)){ 
Prueba a cambiarlo por esto:

Código PHP:
if ($total 20){ 
Hola Santris muchas gracias por la gran ayuda que me has dado.

te comento, que he cambiado como me has dicho al seleccionar ya no aparece nada, por otro lado la paginacion funciona tal y como esta, pero si le doy clic hacia la siguiente pagina ya no aparece nada, pero si uso este mismo codigo con otro contenido funciona bien, pagina por pagina, creo que como esta pasando por AJAX siendo un selecc debe cambiarse algo creo yo, nose, que sera,

se que esta por aqui la cosa
Código PHP:
echo paginar($pag$total$tampag"resultado.php?pag="); 

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:04.