2011-05-17 8 views
5

que tiene una función de búsqueda, y que le gustaría ver el término de búsqueda en la entrada de búsqueda.Extracto Palabras Url

mi URL es: search-1.html?keyword=XXXXXX

¿Cómo consigo esto, y mostrarlo en una entrada?

Gracias de antemano.

Respuesta

2

Si es sólo uno key=value en la URL puede usar regex simple como esta:

var theValueYouWant = window.location.href.match(/keyword=(.+)/)[1] 

Y establecer el valor de una entrada como esta

$('input').val(theValueYouWant) 

Si desea analizar la cadena GET más a fondo, esta función debería hacerlo ...

solución
gets = {}; 
$.each(location.search.replace(/^\?/,'').split('&'),function(k,v){ 
    bits = v.split('='); 
    gets[bits[0]] = bits[1]; 
}); 
3

Utilice esta: http://ajaxcssblog.com/jquery/url-read-get-variables/

Take suerte!

Ah, y entonces usted puede utilizar lo siguiente para mostrar su valor en un campo de entrada: solución

$("#inputId").val($.url.param("keyword")); 
+0

nice and tiny plugin +1 – Pinkie

+0

Sí, me encanta. Lo cargo en la mayoría de mis sitios web como un hábito debido a lo útil que ha sido tener acceso (rápido y fácil) a GET vars en JS. – Todd

0

jQuery-menos:

<script type="text/javascript"> 
var $_GET=[],pairs=location.href.toString().substring(location.href.toString().indexOf("?")+1).split("&");for(key in pairs){pos=pairs[key].indexOf("=");$_GET[pairs[key].substring(0,pos)]=decodeURIComponent(pairs[key].substring(pos+1).replace(/\+/g," "))}; 

// Now just access with $_GET 
// example... 
keyword = $_GET["keyword"]; 
</script> 
1

Regex:

var S = window.location.search; // "?keyword=..." etc. 
var T = S.match(/^\?(?:[^\b]*&+)?keyword=([^&]*)/); 
if (T) 
    T = T[1] 
else 
    T = "no keywords found" 

Si se dan varios valores para " palabra clave "(ex ?keyword=XXX&keyword=YYY), la expresión regular solo encontrará el primero de estos valores (e.x. XXX). Esta expresión regular funciona incluso si hay otras variables en la cadena de consulta.

+0

¿Estás seguro de que esto funciona? tratar http://jsfiddle.net/pLHGh?hi=1&hi2=2 – Pinkie

+0

@pinkie, esto sucede porque el guión en carreras jsFiddle en un 'iframe'. Si usa la URL 'iframe' de http://fiddle.jshell.net/pLHGh/show/light/?hi=1&hi2=2, funciona. –

+0

@gaby sí, tienes razón. Buena solución. – Pinkie

Cuestiones relacionadas