I based a little on the reply of @Sergiobarros.
This solution will, before taking the parameters of the URL, take the fragment from it, then take the list of parameters, and finally build a parameter object. All parameters will be saved to this object if the query ?
exists.
At the end, to read the URL parameters just index the object params
, just like you index $_POST
in PHP!
params["nome_do_campo_html"];
params.nome_do_campo_html;
var url = location.href;
// Ignora o fragmento da URL
var noFrag = url.split('#')[0];
// Pega a lista de parâmetros
var query = noFrag.split('?')[1];
// Cria um objeto
// para guardar os parâmetros
var params = {};
// Checa se a lista de parâmetros
// existe
if (query) {
// Faz a separação dos parâmetros
let offParams = query.split('&');
// Vamos iterar os parâmetros!
for (let param of offParams) {
// Checa se o parâmetro não está vázio
if (param.length) {
// Pega a índice do '='
let assignIndex = param.indexOf('=');
let key, value;
// Checa se o '=' existe
if (assignIndex >= 0) {
// Pega o nome do parâmetro
key = param.substring(0, assignIndex);
// Pega o valor (depois de '=')
value = param.substring(assignIndex + 1) || true;
} else {
// O nome do parâmetro...
// realmente pertence à @param.
key = param;
// O valor padrão será true
value = true;
}
// Por fim guardamos o parâmetro
// no objeto params
params[key] = value;
}
}
}
Ah! And another alternative is to use the interface URLSearchParams
to interpret the URL query and use the method URLSearchParams#get
to read a parameter:
var noFrag = location.href.split('#')[0];
var urlQuery = noFrag.split('?')[1];
if (urlQuery) {
var searchParams = new URLSearchParams(urlQuery);
// Exemplo de uso !
var myParam = searchParams.get('nome');
}
This interface is implemented in current browsers.
Hello, a similar question here has been answered and I hope it helps you
– Wilson Rosa Gomes
The specific content for each selection comes from PHP? why not change the piece of the specific page instead of loading the page again?
– Sergio