09/01/2004, 15:59
|
| | Fecha de Ingreso: enero-2004
Mensajes: 13
Antigüedad: 20 años, 10 meses Puntos: 0 | |
Hola,
Te escribo una posible solución de las muchas que hay:
Dentro de la función de javascript llamada "startsearch()", o en alguna función referenciada desde "startsearch()", existirá una linea donde coja el valor de la caja de texto llamada "txtSearch" para usarlo en la rutina de búsqueda.
Bien, solo tienes que variar esa línea y poner que en lugar de recoger el valor de la caja de texto lo coja desde una variable.
Por ejemplo, pongamos que el codigo es tal que así:
function startSearch()
{
Tu_Rutina_Previa;
RutinaDeBusqueda(documents.forms["formSearch"].txtSearch.value);
Tu_Rutina_Final;
}
Entendiendo que tu rutina previa y tu rutina final son los pasos que haces antes y despues de la búsqueda y RutinaDeBusqueda es la rutina donde haces la búsqueda propiamente. Es posible que no sea una función, si no que esté en el código de la función startSearch, eso no puedo saberlo sin ver el código, pero imagino que te harás una idea.
Bien, cambia la linea donde recoges el valor del texto (documents.forms["formSearch"].txtSearch.value) por un valor recogido de una variable previamente declarada como global (Después del tag <javascript> pones "var miBusqueda = ''")
Cuando crees el link para buscar "autos" directamente le asignas como acción una nueva función que asigne a la variable la palabra "autos", de la siguiente manera :
/******************************
* Código HTML
*******************************/
<a href="javascript: startPredefinedSearch('Autos'); void(null);">Autos</a>
/*******************************
* Función javascript
********************************/
function startPredefinedSearch(keyword)
{
// Asigna a la variable de busqueda definida anteriormente el valor predefinido
miBusqueda = keyword; // En este caso 'autos', dependiendo del parámetro
// Llama a la función de búsqueda
startSearch();
}
De esta forma tu link ya funcionará. Solo falta un detalle, controlar en la función startSearch si la búsqueda viene de un valor predefinido o de un valor entrado por el usuario. Si el valor es predefinido, la variable "miBusqueda" contendrá una cadena de caracteres, si no será una cadena vacia, por lo que en tu función startSearch(), antes de empezar con la rutina de búsqueda, debes hacer algo así como :
// Miramos el contenido de la variable
if(miBusqueda == "")
{
// No hay busqueda predefinida, luego buscamos desde la caja de texto
miBusqueda = documents.forms["formSearch"].txtSearch.value;
}
Ahora tu variable "miBusqueda" tendrá un valor seguro. Si es predefinida la que pases por parametro, si no lo es la que coge del texto.
Esta es la forma de hacerlo que me ha parecido mejor, por sencilla y standar, no obstante hay otras. Te pongo una más sencilla pero más sucia.
Se trata de modificar la función startSearch para que esta reciba la palabra a buscar por parametro. Así, debes cambiar la línea "documents.forms["formSearch"].txtSearch.value" por el parametro.
Entonces en modificas el formulario, cambiando el tag inicial por:
<form name=formSearch action="javascript:startsearch(this.txtSearch.valu e) //">
De esta forma, al buscar a través del botón submit le pasará a "startSearch" el valor de la caja de texto.
Entonces en el link de autos haces:
<a href="javascript: startSearch('Autos'); void(null);">Autos</a>
Así al clickar el link pasará la palabra 'autos' como parámetro a la función "startSearch()"
Hay muchas otras formas de hacerlo, pero yo te aconsejo la primera.
Saludos |