PHP: l'appel d'une fonction javascript avec les paramètres de php
Je suis en train d'appeler la fonction JavaScript avec des paramètres qui sont des variables PHP.
J'ai essayé les 2 approches.
-
l'appel de fonction JavaScript en PHP avec les balises script dans l'echo
j'.e<?php echo '<script>initialize('.$lat.','.$lang.','.$zom.');</script>'; ?>
-
l'affectation des variables PHP valeurs à des variables JavaScript
<script> var lat="<?php echo $lat;?>"; var lang="<?php echo $lang; ?>"; var zoom="<?php echo $zoom; ?>"; alert(lat+lang+zoom); initialiser(lat,lang,zoom); </script>
Dans le premier cas, la fonction est appelée comme je l'ai vérifié à partir de la source de la page, mais les paramètres passés sont pas définis.
Et dans le 2ème cas, les valeurs sont correctement enregistrées dans des variables JavaScript, vérifier par alert(), mais la fonction n'est pas appelée.
Voici le code entier:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<?php
if( isset($_POST['lat']) && isset($_POST['lang']) && isset($_POST['zoom']) && isset($_POST['city'])):
$lat=$_POST['lat'];
$lang=$_POST['lang'];
$zoom=$_POST['zoom'];
$city=$_POST['city'];
$zom=(int)$zoom;
var_dump($lang);
var_dump($lat);
//var_dump($zoom);
var_dump($zom);
//echo '<script>initialize('.$lat.','.$lang.','.$zom.');</script>';
endif;
?>
<script>
var lat="<?php echo $lat; ?>";
var lang="<?php echo $lang; ?>";
var zoom="<?php echo $zoom; ?>";
alert(lat+lang+zoom);
initialize(lat,lang,zoom);
</script>
<script>
function initialize(a,b,zom){
if (!a || !b ||!zom){
alert('came on not' +a+b +zom);
// var centerLoc=new google.maps.LatLng( 33.61701054652337,73.37824736488983);
zoom=16;
}
else
{
alert('came');
var zoom =parseInt(zom);
var centerLoc=new google.maps.LatLng(a,b);
}
var mapProp = {
center:centerLoc,
zoom:zoom,
//mapTypeId:google.maps.MapTypeId.ROADMAP
mapTypeId:google.maps.MapTypeId.SATELLITE
};
var map=new google.maps.Map(document.getElementById("googleMap") ,mapProp);
marker=new google.maps.Marker({
position:centerLoc,
title:'Click to zoom'
});
google.maps.event.addListener(marker,'click',function() {
map.setZoom(map.getZoom()+1);
map.setCenter(marker.getPosition());
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body style= "background-color:gainsboro;">
<form method="POST" action="myPage.php" >
Enter latitude: <input type ="text" name="lat" id="lat" / ><br/>
Enter longitude: <input type ="text" name="lang" id="lang"/ ><br/>
Enter City Name: <input type="text" name="city" id="city"/><br/>
Enter Zoom level: <input type ="text" name="zoom" id="zoom"/ ><br/>
<input type="button" value ="Perview" onclick=" initialize(
document.getElementById('lat').value,
document.getElementById('lang').value,
document.getElementById('zoom').value)"/>
<input type="Submit" value="Save" />
</form>
<center><div id="googleMap" style="width:1000px;height:500px;"></div></center>
</body>
</html>
Vérifiez la console JavaScript pour les erreurs.
Lorsque vous exécutez
initialiser(30,70,5);
Essayez de déboguer votre js - par exemple, à l'aide de la console de Chrome
Faire appel de cette fonction, ou elle "existe"? Vous auriez peut-être besoin de l'appeler dans
Lorsque vous exécutez
echo '<script>initialize('.$lat.','.$lang.','.$zom.');</script>';
, ce que vous obtenez dans le code source de la page générée?initialiser(30,70,5);
Essayez de déboguer votre js - par exemple, à l'aide de la console de Chrome
Faire appel de cette fonction, ou elle "existe"? Vous auriez peut-être besoin de l'appeler dans
body onload
, something onclick
etc.
OriginalL'auteur Rabeel | 2013-03-24
Vous devez vous connecter pour publier un commentaire.
Utilisation
json_encode()
. Si vous ne le faites pas, il y aura toujours la possibilité d'avoir échappé à vos données de manière incorrecte comme il passe du PHP, du HTML/JS couche.En général, pour votre santé mentale, toutes les données qui est en PHP que vous avez besoin de mettre à la disposition js en cours d'exécution sur la page en cours devraient être rassemblées dans un seul tableau PHP et ensuite placés dans une seule js objet. Par exemple:
Maintenant, il ya un seul point de contact entre le JS et le PHP/HTML couches de sorte que vous pouvez facilement garder une trace de ce que vous mettez dans le JS de l'espace de noms.
OriginalL'auteur Francis Avila
Appel de la fonction lorsque le navigateur fini de charger le javascript.
OriginalL'auteur Pieterjan Stevens
Suffit d'appeler sur le prédéfinies code java script comme jsFunction() ; dans ton code php
OriginalL'auteur ATSU EMMANUEL
J'ai trouvé quelques très bons exemples sur L'appel d'une fonction javascript à partir de php et il apparaît, vous pouvez également exécuter le code en ligne à PhpFiddle.org
Juste au cas où les liens de pause, voici quelques exemples:
Exemple 1: Appel sans paramètres
Exemple 2: Appel avec un seul paramètre
Exemple 3: l'Appel à l'aide d'un tableau de paramètres
OriginalL'auteur Chris Sprague