variabile javascript su link html

mizar1966

Nuovo Utente
3 Nov 2013
13
2
3
Buongiorno , dovrei inserire all'interno di un link basato anche su variabili CLASSIC ASP una variabile in javaScript, come da esempio:

<a href="foto.asp?id=<%= varId%>&link=<%=auto%>"> dove: <%=auto%> viene recuperata da un JavaScript.

in HTML richiamo la variabile a video così: <p id='auto'></p> e funziona.
In ASP ho creato questo metodo per recuperare la variabile JavaScript:
varAuto = "<p id='auto'></p>"
Non vedo sul link la variabile JavaScript ma vedo il codice HTML seguente: <p id='auto'></p>.
Qualcuno può aiutarmi? Grazie 1000
 
Salve, partiamo dal fatto che, in linea generale, un linguaggio lato server (nel tuo caso ASP) non può vedere e leggere ciò che avviene lato client (quindi JavaScript); a meno che questi dati non siano già presenti da qualche parte, per cui è possibile recuperarli, o a meno che da client non si imposti un qualche sistema (tipo AJAX) per comunicare runtime col server.

Nonostante abbia letto con attenzione le tua richiesta trovo davvero poco chiaro il contesto e mi viene difficile "interpretare" le indicazioni fornite. Non capisco dove tu abbia definito la variabile JavaScript e quale sia il metodo, di cui fai accenno, usato per recuperarla attraverso ASP.

Ti chiedo possibilmente di chiarire il contesto e fornire maggiori dettagli.
 
Salve, partiamo dal fatto che, in linea generale, un linguaggio lato server (nel tuo caso ASP) non può vedere e leggere ciò che avviene lato client (quindi JavaScript); a meno che questi dati non siano già presenti da qualche parte, per cui è possibile recuperarli, o a meno che da client non si imposti un qualche sistema (tipo AJAX) per comunicare runtime col server.

Nonostante abbia letto con attenzione le tua richiesta trovo davvero poco chiaro il contesto e mi viene difficile "interpretare" le indicazioni fornite. Non capisco dove tu abbia definito la variabile JavaScript e quale sia il metodo, di cui fai accenno, usato per recuperarla attraverso ASP.

Ti chiedo possibilmente di chiarire il contesto e fornire maggiori dettagli.
 
Salve e Grazie per la risposta, forse non servirà a niente ma invio comunque una parte del codice per chiarire meglio ciò di cui avevo bisogno:


if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(trova_posizione);
}else{
alert('Il browser in uso non supporta la geolocalizzazione');
}
function trova_posizione(mappa) {
var latitudine = mappa.coords.latitude;
var longitudine = mappa.coords.longitude;
document.getElementById('posizione').innerHTML = + latitudine + ',' + longitudine;
}
</script>

<!-- ASP -->
<%
varCoordinate = "<div id=posizione></div>"
%>
<a href="foto-reazione.asp?id=<%= varId%>&Coordinate=<%=varCoordinate%>"><%=varCoordinate%></a>
<!-- FINE-->
A video mostra le coordinate ma sul link non le invia, riporta solo <div id="posizione"></div>

Grazie.
 
Ok, vedi il mio preambolo nel precedente messaggio. E' chiaro che quel dato viene fornito runtime da JavaScript (cioè dal client, attraverso il browser) per cui con ASP non puoi recuperarlo come stai cercando di fare. Cerca di capire il concetto.

Il <div> #posizione infatti è solo un contenitore html in cui JavaScript (quando viene eseguito attraverso il browser) va ad inserire quel valore recuperandolo attraverso le funzioni che hai menzionato.

Lato server il tuo ASP non ha alcun modo di vedere quel dato a priori, perché JavaScript non verrà eseguito finché la pagina non viene aperta attraverso un browser. Chiaramente quel <div>, inserito in un contesto html (che sia o non sia restituito da ASP), mostra il dato perché è JavaScript ad infilarcelo dentro quando la pagina viene aperta nel browser. Certamente vedrai il dato se il <div> viene inserito correttamente nel proprio contesto, ma è anche vero che lo stess non puoi infilarlo a tuo piacimento dentro un qualsivoglia href.

Quello che potresti fare è "aggiornare" in qualche modo tale href sempre tramite JavaScript. Puoi fare in vari modi, ad esempio puoi aggiornarlo all'apertura della pagina in maniera simile a come lo stesso dato viene inserito dentro quel <div> ma agendo piuttosto sull'attributo href di quel tale elemento <a> piuttosto che con innerHTML.

Fai qualche prova e qualche ricerca su come poter aggiornare l'attributo href di un link (elemento <a>).

Può essere magari utile attribuire uno specifico id al tag <a> in modo che da JavaScript ti sia più semplice "individuarlo".
 
Ok, vedi il mio preambolo nel precedente messaggio. E' chiaro che quel dato viene fornito runtime da JavaScript (cioè dal client, attraverso il browser) per cui con ASP non puoi recuperarlo come stai cercando di fare. Cerca di capire il concetto.

Il <div> #posizione infatti è solo un contenitore html in cui JavaScript (quando viene eseguito attraverso il browser) va ad inserire quel valore recuperandolo attraverso le funzioni che hai menzionato.

Lato server il tuo ASP non ha alcun modo di vedere quel dato a priori, perché JavaScript non verrà eseguito finché la pagina non viene aperta attraverso un browser. Chiaramente quel <div>, inserito in un contesto html (che sia o non sia restituito da ASP), mostra il dato perché è JavaScript ad infilarcelo dentro quando la pagina viene aperta nel browser. Certamente vedrai il dato se il <div> viene inserito correttamente nel proprio contesto, ma è anche vero che lo stess non puoi infilarlo a tuo piacimento dentro un qualsivoglia href.

Quello che potresti fare è "aggiornare" in qualche modo tale href sempre tramite JavaScript. Puoi fare in vari modi, ad esempio puoi aggiornarlo all'apertura della pagina in maniera simile a come lo stesso dato viene inserito dentro quel <div> ma agendo piuttosto sull'attributo href di quel tale elemento <a> piuttosto che con innerHTML.

Fai qualche prova e qualche ricerca su come poter aggiornare l'attributo href di un link (elemento <a>).

Può essere magari utile attribuire uno specifico id al tag <a> in modo che da JavaScript ti sia più semplice "individuarlo".
Risolto dove molti tentativi e modificando completamente il javascript della Geo:
var link = document.getElementById('link').href;
link = link + "&Coordinate="+latitudine+","+longitudine+"";
document.getElementById('link').href=link;

Grazie 1000
 
  • Like
Reactions: WmbertSea

Discussioni simili