[RESOLVIDO] Como passar um valor de uma JS pra o campo do formulário

Prezados,

Como escrevo código aqui dentro dessa caixa de texto? Tentei fazer isso, o código foi omitido. Tentei add uma foto com o código, mas também não consegui. Após resolver a questão da visualização do código e ele exibido aqui, minha dúvida é esta?

Como passo o valor da LATITUTE e LONGITUDE obtidos pelo código abaixo pra um campo de um formulário?

?>
<body onLoad="getLocation()">

<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocalização não é suportada para este navegador.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + 
  "<br>Longitude: " + position.coords.longitude
 $("#id_sc_field_localizacao_NaN").val(position.coords.longitude);
}
</script>
</body>
<?php

Escreva código entre [code] e [/code]

Edite sua postagem e conserte o texto.

Mas já imaginando o que precisa, se consome uma api em js use ajas para enviar para o php.

1 Curtida

Obrigado, @InfinitusWeb

Pronto, o código já está postado. Esse código é de uma postagem que alguém já fez aqui no fórum, mas não lembro quem nem nem quando, ele funciona, mas a explicação que o autor faz pra resolver o meu problema, que é adicionar o valor pra um campo do formulário, eu não consegui fazer e estou precisando resolver isso.

@InfinitusWeb

Poderias me ajudar ?

Faça com jquery.

$(‘#id do campo’).val(valor); //para input

Ou
$(‘#id do campo’).html(valor); //para label

@InfinitusWeb Desculpa, eu não sei fazer, nunca trabalhei com jquery. Se for um código simples, vc poderia montar?

jquery é javascript.

Se vc tem essa dúvida é porque de alguma forma você tem o valor disponível dentro de uma sessão javascript, é só aplicar o código que sugeri acima.

E para saber o id do elemento, clique o botão direito do mouse sobre o campo e clique em inspecionar, no html terá algo do tipo id=sc_field… alguma coisa.

1 Curtida

Blz, vou testar aqui.

Deu certo, @InfinitusWeb

1 Curtida

coloca o código final

1 Curtida
?>
<body onLoad="getLocation()">

<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocalização não é suportada para este navegador.";
  }
}

function showPosition(position) {
  x.innerHTML = 
	  "Latitude: " + position.coords.latitude + 
  	  "<br>Longitude: " + position.coords.longitude
   
	//Minha dúvida era aqui. Haroldo deu a dica e deu certo.
	$("#id_sc_field_lat").val(position.coords.latitude)
	$("#id_sc_field_long").val(position.coords.longitude);
		
</script>
</body>
<?php

@InfinitusWeb, como eu concateno a latitude e longitude para passar para o mesmo campo?

No código acima você ja Concatena.

Usando o +

1 Curtida

@InfinitusWeb

Estou usando o código acima numa aplicação grid editável view e a cada linha criada o id do meu campo muda, sempre incrementando 1 para cada linha. Como faço pra deixar isso dinâmico? Ex: ao inserir o novo registro, como saber em qual linha (registro) estou para incrementar isso no id do campo?

var la = ‘#id_sc_field_latitude_1’;
var lo = ‘#id_sc_field_longitude_1’;

$(la).val(position.coords.latitude)
$(lo).val(position.coords.longitude);

Veja a macro sc_seq_register

1 Curtida

Legal. Acho que vai dar certo.

Não dá certo porque ela só funciona em app de consulta. O que preciso é do funcionamento dela, mas em um formulário do tipo grid editável view.

Assista:

1 Curtida

@InfinitusWeb funcionou, esbarrei agora em sintaxe por não saber usar JavaScript. Como faço pra obter o valor de $sc_seq_vert dentro dessa função? porque vai ser com ela que vou incrementar o id do campo do grid editável view.

function showPosition(position) {
 /* x.innerHTML = 
	 // "Latitude: " + position.coords.latitude + 
  	 // "<br>Longitude: " + position.coords.longitude
	 $("#id_sc_field_lat").val(position.coords.latitude)
	 $("#id_sc_field_lon").val(position.coords.longitude);
	*/
	
	var seq = $sc_seq_vert; //?????????????????????????????????????
	
	var la = '#id_sc_field_latitude_'.seq;
	var lo = '#id_sc_field_longitude_'.seq;
	
	$(la).val(position.coords.latitude)
	$(lo).val(position.coords.longitude);
}
	
</script>
</body>

<?php

Concatenar em Javascript usa o +.
Deve passar a variável php como parâmetro na função js.

1 Curtida