Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] De buscador a link

Estas en el tema de De buscador a link en el foro de HTML en Foros del Web. Hola a todos, hace 4 años me diseñaron una web y poco a poco he ido aprendiendo a hacer algunos cambios para poder administrarla. Tiene ...
  #1 (permalink)  
Antiguo 03/12/2015, 14:08
 
Fecha de Ingreso: diciembre-2015
Mensajes: 19
Antigüedad: 8 años, 11 meses
Puntos: 0
De buscador a link

Hola a todos, hace 4 años me diseñaron una web y poco a poco he ido aprendiendo a hacer algunos cambios para poder administrarla. Tiene un buscador de tiendas por provincias y ahora me gustaría por temas de seo poner links que llevaran sólo a las tiendas de esas provincias. Tipo tiendas en Madrid He pensado que puedo utilizar el archivo ya creado en php pero no se cómo redactar el html para que al pinchar el link haga lo mismo que hacía el buscador.
Os pongo el buscador a ver si desde ahí me podéis ayudar. Gracias por adelantado.
<div id="buscador">
<form name="form_buscador" id="form_buscador" action="index.php" method="post">
<input type="hidden" name="OKbuscar" id="OKbuscar" value="1" />

<input type="text" name="input_buscar" id="input_buscar" value="Buscar tiendas" />
<button type="submit" id="btn_buscar" name="btn_buscar">Buscar</button>
<?echo select_EditarOrdenWhere("id, provincia", "provincias", "WHERE id<='52'", "provincia_buscar", $provincia_id, "provincia", "")?>

</form>
<a href="#" title="Cerrar">Cerrar</a>
</div>
  #2 (permalink)  
Antiguo 03/12/2015, 17:17
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: De buscador a link

bueno en realidad tendrias es que colocar el codigo php que realiza la busqueda, pues alli estan los nombres de las variables a recibir, y es en base a estas que se debe configurar el enlace, algo asi:

Código HTML:
Ver original
  1. <a href="index.php?input_buscar=Buscar tiendas&OKbuscar=1">Tiendas Madrid</a>

pero como dije antes hay que ver el php para recomendarte algunos cambios ya que las pasas por post con el form y en este caso debes recibirlas por get, quedo a espera del codigo
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 04/12/2015, 04:39
 
Fecha de Ingreso: diciembre-2015
Mensajes: 19
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: De buscador a link

xfxstudios gracias x contestar. Pego php
Para más detalle, la búsqueda que hace x provincias es de ofertas en tiendas. En un principio lo configuraron para buscar x palabra clave pero daba problemas así que se dejo a búsqueda por provincia.

<?include "header.php";

if($_POST['OKbuscar']) {
if (($_POST['provincia_buscar']!="")&&($_POST['provincia_buscar']!="0")) {
$filtroprovincia=" AND empresas_ofertas.provincia_id='".$_POST['provincia_buscar']."' ";
}
if (($_POST['input_buscar']!="") && ($_POST['input_buscar']!="Buscador: Palabra Clave")) {
$filtrotexto=" AND empresas_ofertas.titulo LIKE '%".$_POST['input_buscar']."%' OR empresas_datosempresa.nombre LIKE '%".$_POST['input_buscar']."%' OR empresas_ofertas.poblacion LIKE '%".$_POST['input_buscar']."%' ";
}
}

$fechaactual=fecha_actualtipoHorafija($HORAACTUAL) ;

$consulta="SELECT empresas_ofertas.id, empresas_ofertas.idencriptado, DATE_FORMAT(fecha, '%d-%m-%Y'), empresas_datosempresa.nombre, empresas_datosempresa.subcategoria_id, empresas_datosempresa.actividad, empresas_ofertas.titulo, empresas_ofertas.poblacion, provincias.provincia, empresas_datosempresa.nombre_ocultar FROM empresas_ofertas ".
"LEFT JOIN empresas_datosempresa ON empresas_datosempresa.empresa_id=empresas_ofertas. empresa_id ".
"LEFT JOIN provincias ON provincias.id=empresas_ofertas.provincia_id ".
"WHERE empresas_ofertas.activo='1' AND empresas_ofertas.cerrada='1' AND empresas_ofertas.fecha_caducidad>='".$fechaactual. "' ".$filtroprovincia.$filtrotexto." ORDER BY empresas_ofertas.fecha DESC, empresas_ofertas.id DESC LIMIT 0,10";
$rsOfertas=mysql_query($consulta);

$numeroRegistros=mysql_num_rows($rsOfertas);?>

<p class="ofertasEnc">&Uacute;ltimas <strong><?echo $numeroRegistros?></strong> ofertas</p>
<h2 class="noTit">&Uacute;ltimas ofertas</h2>

<table summary="Ofertas" class="ofertas">
<thead>
<tr>
<th width="80">Fecha</th>
<th>Producto</th>
<th>Poblaci&oacute;n</th>
<th>Provincia</th>
<th>Empresa</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="5" class="centro"><strong><a href="listado_ofertas_empresas.php" title="listado ofertas">Ir al listado completo de ofertas</strong></a></td>
</tr>
</tfoot>
<tbody>
<?if(mysql_num_rows($rsOfertas) > 0){
$i=0;
while(list($id, $idencriptado, $fecha, $nombre, $sector_id, $actividad, $titulo, $poblacion, $provincia, $nombre_ocultar) = mysql_fetch_array($rsOfertas)){
$rsSector=mysql_query("SELECT subcategoria FROM subcategorias WHERE id='".$sector_id."'");
list($sector) = mysql_fetch_array($rsSector);

if ($provincia=="-Todas") $provincia="Todas";
if ($nombre_ocultar=="1"){
$nombre=$sector;
if ($sector=="Otros") $nombre=$nombre." - ".stripslashes($actividad);
}

if ($i==0) {
$i=1;?>
<tr>
<?}else{
$i=0;?>
<tr class="filaColor">
<?}?>
<td class="centro"><?echo $fecha?></td>
<td class="producto"><a href="ofertas_detalle_empresa.php?oferta_id=<?echo $idencriptado?>" title="<?echo stripslashes($titulo)?>"><?echo stripslashes($titulo)?></a></td>
<?if ($provincia=="") {?>
<td colspan="2" class="centro"><?echo stripslashes($poblacion)?></td>
<?}else{?>
<td><?echo stripslashes($poblacion)?></td>
<td><?echo stripslashes($provincia)?></td>
<?}?>
<td><?echo stripslashes($nombre)?></td>
</tr>
<?}
}else{?>
<td colspan="5" class="centro">No hay ninguna oferta</td>
<?}?>

</tbody>
</table>
<?include "footer.php";?>
  #4 (permalink)  
Antiguo 06/12/2015, 12:47
 
Fecha de Ingreso: diciembre-2015
Mensajes: 19
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: De buscador a link

¿Alguna idea?
  #5 (permalink)  
Antiguo 09/12/2015, 16:21
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: De buscador a link

el problema no esta en pasar la busqueda de un formulario a un enlace, esta es en la misma consulta en si, ya que esta depende de lo que escriban en el input de busqueda actual y que este no estará presente en el enlace por ejemplo, ya que solo puedes pasar variables determinadas por ese medio, es decir:

tu consulta actual debería de ser modificada de esta manera:

Código PHP:
Ver original
  1. if(empty($_GET['provincia_buscar'])){
  2. //Aqui lo que quieres que pase si alguien accede directemente a la pagina sin pasar por el enlace
  3.    
  4.     }
  5.  
  6. else if(empty($_GET['input_buscar'])){
  7. //Aqui lo que quieres que pase si alguien accede directemente a la pagina sin pasar por el enlace
  8.    
  9.     }
  10.  
  11. else{
  12.  
  13.  
  14.  
  15. $filtroprovincia=" AND empresas_ofertas.provincia_id='".$_GET['provincia_buscar']."' ";
  16. $filtrotexto=" AND empresas_ofertas.titulo LIKE '%".$_GET['input_buscar']."%' OR empresas_datosempresa.nombre LIKE '%".$_GET['input_buscar']."%' OR empresas_ofertas.poblacion LIKE '%".$_GET['input_buscar']."%' ";
  17.  
  18.  
  19. $fechaactual=fecha_actualtipoHorafija($HORAACTUAL) ;
  20.  
  21. $consulta="SELECT empresas_ofertas.id, empresas_ofertas.idencriptado, DATE_FORMAT(fecha, '%d-%m-%Y'), empresas_datosempresa.nombre, empresas_datosempresa.subcategoria_id, empresas_datosempresa.actividad, empresas_ofertas.titulo, empresas_ofertas.poblacion, provincias.provincia, empresas_datosempresa.nombre_ocultar FROM empresas_ofertas ".
  22. "LEFT JOIN empresas_datosempresa ON empresas_datosempresa.empresa_id=empresas_ofertas. empresa_id ".
  23. "LEFT JOIN provincias ON provincias.id=empresas_ofertas.provincia_id ".
  24. "WHERE empresas_ofertas.activo='1' AND empresas_ofertas.cerrada='1' AND empresas_ofertas.fecha_caducidad>='".$fechaactual. "' ".$filtroprovincia.$filtrotexto." ORDER BY empresas_ofertas.fecha DESC, empresas_ofertas.id DESC LIMIT 0,10";
  25. $rsOfertas=mysql_query($consulta);
  26.  
  27. $numeroRegistros=mysql_num_rows($rsOfertas);
  28.  
  29. }

y el enlace quedaria asi:

Código HTML:
Ver original
  1. <a href="pagina.php?provincia_buscar=valencia&input_buscar=todo">Valencia</a>

de esta manera le estoy pasando las variables que necesita mi consulta para fultrar los resultados, ahora bien como ves en tu consulta la misma verifica varios campos que dependen de la variable input_buscar, asi que o eliminas ese segundo filtro de busqueda y optimizas la base para que buque solo por la id de la provincia o dejas el input tal y como esta ahora, claro todo esto es basado en la poca info que has suministrado, ya que no se donde estaran esos enlaces, si es un menu, si es un barra lateral adicional, o de que manera los vas a presentar. Saludos y avisa cualquier cosa.
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 11/12/2015, 09:08
 
Fecha de Ingreso: diciembre-2015
Mensajes: 19
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: De buscador a link

Funcionó!!!
Muchísimas gracias, seguí tus consejos y aquí está:

if(empty($_GET['provincia_buscar'])){
$filtroprovincia=" AND empresas_ofertas.provincia_id='".$_GET['provincia_buscar']."' ";}
else
if(empty($_GET['input_buscar'])){
$filtroprovincia=" AND empresas_ofertas.provincia_id='".$_GET['provincia_buscar']."' ";}
(sigue el original)

el link quedó así:

<a href="ofertas-provincias.php?provincia_buscar=28">Ofertas Madrid</a>

Sólo tengo que cambiar el nº en cada enlace según la numeración de provincias.

Gracias de nuevo xfxstudios

Etiquetas: buscador, input, link, php, todo
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 05:09.