Pas étonnant.
php est un langage de programmation qui est d’abord analysé lexicalement (tu cherches les différents éléments, comme “if”, “else”, les chaînes) puis syntaxiquement. Au final, il envoie sa sortie au navigateur qui analyse le code HTMl, analysant éventuellement du code javascript analysé d’abord lexicalement, puis syntaxiquement…
En particulier si tu ouvres la source du résultat php, tu auras (pour $nom = ‘aaa’, et $prenom= ‘aaa’)
alert(aaa aaa);
Pour javascript, c’est vu comme :
<id, alert> ( <id, aaa> <id, aaa> ) ;
Ce qui provoque une erreur.
Si tu veux afficher une chaîne javascript =>
...
?>
<script type="text/javascript">
alert('<?php echo addslashes($nom), ' ', addslashes($prenom); ?>' );
</script>
<?php
...