JavaScript - Buscador con botones radio

 
Vista:
sin imagen de perfil

Buscador con botones radio

Publicado por Manuel Jesus (5 intervenciones) el 11/12/2013 21:02:03
Hola, estoy intentando hacer una modificación en un formulario de busqueda para que el usuario en vez de usar el campo de texto haga una selección en botones radio.

El campo de texto actual tiene en el código como name=search_query y si creo los botones radio con ese mismo name funciona correctamente, el problema viene al crear varios grupos de botones radio por lo que no pueden compartir name.

Alguna idea como podría hacerlo?
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
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Buscador con botones radio

Publicado por xve (2100 intervenciones) el 11/12/2013 22:10:33
Hola Manuel, no me que da muy claro, pero puedes hacerlo utilizando varios nombres, no?

Tendrías que utilizar un nombre para cada grupo de botones.

Si nos puedes comentar con mas detalle, o mostrar el código...
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
sin imagen de perfil

Buscador con botones radio

Publicado por Manuel Jesus (5 intervenciones) el 11/12/2013 23:19:18
Ese es el problema, que al no compartir el mismo nombre los grupos, el motor de busqueda no toma esos valores.

el tema es como puedo recoger todos esos name en uno sólo que sea name=search_query, pero manteniendo la independencia de los grupos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form method="get" action="{$link->getPageLink('search', true)|escape:'html'}" id="searchbox">
		<p class="block_content">
			<label for="search_query_block">{l s='Enter a product name or description.' mod='blocksearch'}</label>
			<input type="hidden" name="controller" value="search" />
			<input type="hidden" name="orderby" value="position" />
			<input type="hidden" name="orderway" value="desc" />
			<input class="search_query" type="text" id="search_query_block" name="search_query" value="{$search_query|escape:'htmlall':'UTF-8'|stripslashes}" />
 
                        <input type="radio" name="search_query" value="1">un
	                <input type="radio" name="search_query" value="2">dos
 
			<input type="radio" name="search_query2" value="a">a
                        <input type="radio" name="search_query2" value="b">b
 
                        <input type="radio" name="search_query3" value="x">x
                        <input type="radio" name="search_query3" value="y">y
 
			<input type="submit" id="search_button" class="button_mini" value="{l s='Go!' mod='blocksearch'}" />
		</p>
	</form>

El primer grupo de botones radio funciona ok, pero los otros dos al no compartir nombre, no lo hacen, lo que necesito es que el valor de esos tres grupos quede agrupado podria ser dentro del campo texto que lo ocultaria para que no se viera.
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
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Buscador con botones radio

Publicado por xve (2100 intervenciones) el 12/12/2013 08:56:06
Hola Manuel, creo que la mejor manera, seria una vez se envía el formulario, juntar las tres variables para hacer la búsqueda en la base de datos, no?

Si tienen el mismo nombre, solo te permitirá seleccionar uno !!
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
sin imagen de perfil

Buscador con botones radio

Publicado por Manuel Jesus (5 intervenciones) el 12/12/2013 13:11:36
xve, ese es mi dilema ¿como lo hago?
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
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Buscador con botones radio

Publicado por xve (2100 intervenciones) el 12/12/2013 19:52:07
Hola Manuel, nos puedes mostrar la parte del código del archivo que recibe los valores del formulario? donde se hace la consulta a la base de datos?

Que lenguaje de programación estas utilizando en el servidor?
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
sin imagen de perfil

Buscador con botones radio

Publicado por Manuel Jesus (5 intervenciones) el 12/12/2013 22:46:40
Achivo completo del formulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div id="search_block_left" class="block exclusive">
	<h4 class="title_block">{l s='Search' mod='blocksearch'}</h4>
	<form method="get" action="{$link->getPageLink('search', true)|escape:'html'}" id="searchbox">
		<p class="block_content">
			<label for="search_query_block">{l s='Enter a product name or description.' mod='blocksearch'}</label>
			<input type="hidden" name="controller" value="search" />
			<input type="hidden" name="orderby" value="position" />
			<input type="hidden" name="orderway" value="desc" />
			<input class="search_query" type="text" id="search_query_block" name="search_query" value="{$search_query|escape:'htmlall':'UTF-8'|stripslashes}" />
			<input type="submit" id="search_button" class="button_mini" value="{l s='Go!' mod='blocksearch'}" />
		</p>
	</form>
</div>
{include file="$self/blocksearch-instantsearch.tpl"}

Y el archivo que hace el trabajo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
{if $instantsearch}
	<script type="text/javascript">
	// <![CDATA[
		function tryToCloseInstantSearch() {
			if ($('#old_center_column').length > 0)
			{
				$('#center_column').remove();
				$('#old_center_column').attr('id', 'center_column');
				$('#center_column').show();
				return false;
			}
		}
 
		instantSearchQueries = new Array();
		function stopInstantSearchQueries(){
			for(i=0;i<instantSearchQueries.length;i++) {
				instantSearchQueries[i].abort();
			}
			instantSearchQueries = new Array();
		}
 
		$("#search_query_{$blocksearch_type}").keyup(function(){
			if($(this).val().length > 0){
				stopInstantSearchQueries();
				instantSearchQuery = $.ajax({
					url: '{if $search_ssl == 1}{$link->getPageLink('search', true)|addslashes}{else}{$link->getPageLink('search')|addslashes}{/if}',
					data: {
						instantSearch: 1,
						id_lang: {$cookie->id_lang},
						q: $(this).val()
					},
					dataType: 'html',
					type: 'POST',
					success: function(data){
						if($("#search_query_{$blocksearch_type}").val().length > 0)
						{
							tryToCloseInstantSearch();
							$('#center_column').attr('id', 'old_center_column');
							$('#old_center_column').after('<div id="center_column" class="' + $('#old_center_column').attr('class') + '">'+data+'</div>');
							$('#old_center_column').hide();
							// Button override
							ajaxCart.overrideButtonsInThePage();
							$("#instant_search_results a.close").click(function() {
								$("#search_query_{$blocksearch_type}").val('');
								return tryToCloseInstantSearch();
							});
							return false;
						}
						else
							tryToCloseInstantSearch();
					}
				});
				instantSearchQueries.push(instantSearchQuery);
			}
			else
				tryToCloseInstantSearch();
		});
	// ]]>
	</script>
{/if}
{if $ajaxsearch}
	<script type="text/javascript">
	// <![CDATA[
		$('document').ready( function() {
			$("#search_query_{$blocksearch_type}")
				.autocomplete(
					'{if $search_ssl == 1}{$link->getPageLink('search', true)|addslashes}{else}{$link->getPageLink('search')|addslashes}{/if}', {
						minChars: 3,
						max: 10,
						width: 500,
						selectFirst: false,
						scroll: false,
						dataType: "json",
						formatItem: function(data, i, max, value, term) {
							return value;
						},
						parse: function(data) {
							var mytab = new Array();
							for (var i = 0; i < data.length; i++)
								mytab[mytab.length] = { data: data[i], value: data[i].cname + ' > ' + data[i].pname };
							return mytab;
						},
						extraParams: {
							ajaxSearch: 1,
							id_lang: {$cookie->id_lang}
						}
					}
				)
				.result(function(event, data, formatted) {
					$('#search_query_{$blocksearch_type}').val(data.pname);
					document.location.href = data.product_link;
				})
		});
	// ]]>
	</script>
{/if}


Es del sistema de Prestashop, trabaja en Php.
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
sin imagen de perfil

Buscador con botones radio

Publicado por Manuel Jesus (5 intervenciones) el 18/12/2013 21:04:45
algún alma caritativa que me eche una mano que esto me tiene loco?
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