Buenas
Tengo un problema que quiero solucionar. A ver si me podeis echar una mano. Tengo tres campos de busqueda ligados a un submit. El caso es que la sintaxis que me crea cuando meto valores en esos campos es la siguiente
https://ferreteriairigaray.com/?s=225&s=50&s=14
Asi no hay forma de que me localice nada. Necesitaria que la sintaxis fuera asi
https://ferreteriairigaray.com/?s=225Y50R14
Es decir, me metiera una Y entre el primer y segundo campo y una R entre el segundo y el tercero
Actualmente mi div del buscador es asi:
<div id="CADENAS"><div style="text-align:center">
<form role="search" method="get" id="searchform" class="searchform" action="https://ferreteriairigaray.com/">
<div>
<input type="text" font color="#436b00" placeholder="Anchura" value="" name="s" id="s">
<input type="text" font color="#436b00" placeholder="Altura" value="" name="s" id="s">
<input type="text" font color="#436b00" placeholder="Diametro de la llanta" value="" name="s" id="s">
<input type="submit" id="searchsubmit" value="Buscar">
</div>
</form>
</div></div>
Alguien me puede arrojar algo de luz?
Hola
En el caso que planteas tendrías que hacerlo por programación, específicamente javascript, antes de enviar el formulario tendría que concatenar los valores y luego pasar la url formada correctamente.
Creo que lo más práctico en tu caso sería que hagas atributos de productos, y luego usar el widget de filtro por atributo, de esta manera va filtrando todos los proudctos que tienen ese atributo.
Saludos.
Con atributos no me valdria ya que el cliente debe meter los valores por separado, y los atributos por separado arrojarian resultados erroneos. Varios articulos comparten 255, 80 y 13, pero solo uno acumula la combinacion correcta de 255Y80R13 en el orden correcto. Por eso necesito la concatenacion.
Hola
Efectivamente, tendrías que utilizar javascript (válido jQuery) concatenando los valores de cada uno de los input's de tu formulario, antes de concatenar yo validaría si el campo tiene algo o es null o es igual a "", una vez concatenado en una sola variable procesar el formulario.
No es algo muy complejo pero si no tienes experiencia o conocimientos en el tema te llevará un par de horas o días lograrlo, además recuerda que dos elementos html no pueden tener el mismo id, debe ser distinto, en caso contrario el navegador no sabrá a cual elemento acceder pues estará confundido.
Saludos
Y un pequeño ejemplo me podrias dar? Simplemente por saber de que estamos hablando
Hola.
Puedes revisar esta documentación de WordPress
-> https://developer.wordpress.org/reference/functions/get_search_form/
Un saludo
Sigo investigando
Esto me crea esta sintaxis de busqueda: https://ferreteriairigaray.com/?s=20&Y=20&R=20
<div id="cadenas"><div style="text-align:center">
<form role="search" method="get" id="searchform" class="searchform" action="https://ferreteriairigaray.com/">
<div>
<input type="text" font color="#436b00" placeholder="Anchura" value="" name="s" id="anch">
<input type="text" font color="#436b00" placeholder="Altura" value="" name="Y" id="altu">
<input type="text" font color="#436b00" placeholder="Diametro" value="" name="R" id="dia">
<input type="submit" id="searchsubmit2" value="Buscar">
</div>
</form>
</div></div>
Podria solucionar mi problema si en esa sintaxis se me quitaria & y el segundo y tercer =. Podria hacerlo desde el campo action que he marcado en negrita? Haciendo algun get 'anch' 'altu' 'dia'?
Pepe, como siempre, muy agradecido, pero no he logrado hacer valer esa documentacion 🙁
Hola
Tienes que manipular los inputs con javascript, formar la cadena y luego enviar igualmente por javascript.
Es decir tal como lo tienes no puedes hacerlo por PHP porque necesitas concatenar antes de enviar.
Si sabes algo de programación primero revisa:
Con esto inhabilitas el submit por defecto para que puedes hacer tu programación antes:
https://api.jquery.com/submit/
Luego con la función val() obtienes el valor de los inputs
La idea es que programes la concatenación y lo coloques en un input final y luego enviar el submit por javascript.
Lamentablemente desde este foro sólo podemos darte generalidades ya que no vemos temas de programación específica.
Saludos.