web-dev-qa-db-fra.com

Existe-t-il un moyen de passer des variables javascript dans les URL?

Est-il possible de faire en sorte que le script ci-dessous transmette les valeurs javascript à l'URL du lien href?

<script type="text/javascript">
function geoPreview(lat,long) {
var elemA = document.getElementById("lat").value;
var elemB = document.getElementById("long").value;

window.location.href = "http://www.gorissen.info/Pierre/maps/googleMapLocation.php?lat=elemA&lon=elemB&setLatLon=Set";

}
</script>
9
vsapountzis

Essaye ça:

 window.location.href = "http://www.gorissen.info/Pierre/maps/googleMapLocation.php?lat="+elemA+"&lon="+elemB+"&setLatLon=Set";

Pour mettre une variable dans une chaîne, placez-la entre guillemets et signes d'addition comme ceci:

var myname = "BOB";
var mystring = "Hi there "+myname+"!"; 

Rappelez-vous simplement cette règle!

31
pattyd

Voulez-vous dire inclure des valeurs de variable javascript dans la chaîne de requête de l'URL?

Oui:

 window.location.href = "http://www.gorissen.info/Pierre/maps/googleMapLocation.php?lat="+var1+"&lon="+var2+"&setLatLon="+varEtc;
2
Drew

Résumé

Avec une concaténation chaîne ou interpolation de chaîne (via template literals ).

Ici avec le template JavaScript littéral:

function geoPreview() {
    var lat = document.getElementById("lat").value;
    var long = document.getElementById("long").value;

    window.location.href = `http://www.gorissen.info/Pierre/maps/googleMapLocation.php?lat=${lat}&lon=${long}&setLatLon=Set`;
}

Les deux paramètres sont inutilisés et peuvent être supprimés.

Remarques

Concaténation de cordes

Joindre des chaînes avec l'opérateur +:

window.location.href = "http://www.gorissen.info/Pierre/maps/googleMapLocation.php?lat=" + elemA + "&lon=" + elemB + "&setLatLon=Set";

Interpolation de chaîne

Pour un code plus concis, utilisez JavaScript template literals pour remplacer les expressions par leurs représentations sous forme de chaînes . Les littéraux de modèle sont entourés de `` et des espaces réservés entourés de ${}:

window.location.href = `http://www.gorissen.info/Pierre/maps/googleMapLocation.php?lat=${elemA}&lon=${elemB}&setLatLon=Set`;

Les modèles sont disponibles depuis ECMAScript 2015 (ES6).

0
FlashOver