J'essaie d'appeler une fonction javascript depuis php. D'après tous les exemples que j'ai examinés, ce qui suit devrait fonctionner, mais cela ne fonctionne pas. Pourquoi pas?
<?php
echo "function test";
echo '<script type="text/javascript"> run(); </script>';
?>
<html>
<script type="text/javascript">
function run(){
alert("hello world");
}
</script>
</html>
Votre code HTML est invalide. Il vous manque des balises.
Et vous devez appeler la fonction après sa déclaration, comme ceci
<html>
<head>
<title></title>
<script type="text/javascript">
function run(){
alert("hello world");
}
<?php
echo "run();";
?>
</script>
</head>
<body>
</body>
</html>
Dans ce cas, vous pouvez placer l'exécution avant la déclaration de la méthode, mais dès que vous enroulez l'appel de méthode dans une autre balise de script, celle-ci doit se situer après la déclaration de la méthode.
Essayez vous-même http://jsfiddle.net/qdwXv/
la fonction doit déclarer avant utilisation
CA devrait etre
<html>
<script type="text/javascript">
function run(){
alert("hello world");
}
<?php
echo "function test";
echo run(); ;
?>
</script>
</html>
Comme d'autres l'ont suggéré, la fonction doit être déclarée en premier. Toutefois, si vous devez commencer par reprendre le code JavaScript de PHP, vous pouvez soit le stocker dans une variable PHP pour qu'il soit répercuté ultérieurement, ou bien laisser votre code attendre que le fichier dom soit terminé. .
document.ready = function() {
run()
}
Si vous utilisez jQuery ou un autre framework, ils ont probablement une meilleure façon de le faire ... Dans jQuery:
$(function(){
run();
})