Boa tarde,
queria saber como faço pra pegar o valor de uma tag qualquer do meu html e enviar para meu controller, por exemplo estou fazendo um projeto onde preciso da geolocalização de quem esta acessando o site, via javascript eu capturo essa localização e insiro no atributo “value” de uma tag no html, essa tag em especifico fica no topo da minha pagina e é uma area comum q todas as paginas do meu site terao, ou seja, no html tenho acesso a esta tag de qualquer parte do site, até ae tudo funciona bem, o problema é em capturar o valor desta tag e mandar para o controller para q eu possa fazer as querys baseadas na localização do usuario, pois como nao faço nenhum POST ao abrir o home por exemplo, o controller nao tem dados para ler, entao não faço ideia de como capturar o valor de uma tag qualquer do front.
Cara… até onde eu sei… se você quer mandar alguma informação do seu front para o backend você precisa fazer uma requisição pro servidor.
Caso você não queira fazer um GET ou um POST e ter que recarregar a página pra enviar essa informação, você pode usar ajax pra fazer a requisição de forma assíncrona.
Algo como:
var req;
function sendGeoPosition( ) {
var geoPosition = document.getElementById("geoPosition");
var url = "/sua_controller?geoPosition=" + geoPosition.value;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest( );
}
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("Get", url, true);
req.onreadystatechange = callback; //chama o callback caso esteja esperando alguma resposta do servidor
req.send(null);
}
//use essa função apenas se esperar alguma resposta do servidor
function callback( ) {
if (req.readyState==4) {
if (req.status == 200) {
//Faz alguma coisa com a resposta
alert(req.responseText);
}
}
}
espero ter ajudado!
PS: esse código foi adaptado de um que eu uso para responder a sua dúvida… ele não foi testado!
Entendi, vou testar sua solução e ver se resolve, obrigado pela ajuda