Question

J'ai cette petite fonction

function makewindows(){
child1 = window.open ("about:blank");
child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
child1.document.close(); 
}

Ce qui tout ce que j'essaie, affiche simplement le code php comme source html, et non le résultat du code php. Ce fonctionnait déjà très bien, et je ne suis pas sûr de ce que j'ai changé pour aboutir à ce comportement.

J'ai collé tout le code maintenant. Une erreur est générée par un lien qui appelle updateByQuery, ce qui empêche makeWindows d'être analysé correctly..I pense. Je ne sais pas ce qui ne va pas avec cependant updateByQuery:

function updateByQuery(layer, query) {
   url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
   update(layer, url);
}
Était-ce utile?

La solution

Je suppose que vous avez encore dans un fichier qui est analysé par PHP, comme les autres ont déjà dit. Ensuite, il est probablement quelque chose au-dessus de cet extrait de code qui embrouille le parseur php il ne reconnaît pas le php-tag.

Pour tester, essayer de sortie quelque chose d'autre avant que cette fonction, peut-être juste un commentaire ou quelque chose.

En outre, utiliser "var" avant client1, ou bien client1 sera dans la portée globale.

mise à jour 1 Depuis que vous avez essayé d'insérer un morceau de code php et il cassé, alors le problème est que le serveur ne pas analyser le fichier comme il se doit.

Pour tester si le serveur parse vraiment vos fichiers .js (ne est pas le paramètre par défaut, je crois), créez un nouveau fichier: test.js

<?php echo "This is a test"; ?>

Ouvrez le fichier test.js dans votre navigateur et regardez la page source. Si elle a les balises php votre serveur ne pas analyser les fichiers .js.

Mise à jour 2 Si le php fonctionne dans des fichiers .js, essayez de réécrire la fonction comme ça (désolé, je ne l'ai pas testé parce que je n'ai pas accès à un serveur php en ce moment)

<?php    
echo "function makewindows(){var child1 = window.open (\"about:blank\"); " .
"child1.document.write(\"" . htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES) . "\");" . "child1.document.close(); }";    
?>

Autres conseils

Avez-vous récemment déplacé ce fichier à partir d'un fichier PHP analysable (à savoir .phtml / .php) et dans un fichier .js? Notez que tout PHP vous attendre à exécuter doit être analysé par l'analyseur PHP avant la livraison au client. Si elle était à l'origine dans un fichier .php, il aurait été analysé / exécuté, et a bien fonctionné.

Cependant, les fichiers .js ne sont pas, par défaut, analysé par PHP. Peut-être qu'ils étaient, à un moment donné, mais l'administrateur du serveur a récemment mis à jour quelque chose, et a perdu ce comportement? Vous pourrez peut-être utiliser un fichier de configuration local (Apache, .htaccess) pour le réactiver.

Ce code doit être dans un fichier qui est analysé par PHP avant d'être envoyé au navigateur. Assurez-vous qu'il a une extension « .php » (ou que Apache / (ou autre) est configuré pour mettre ce extension, il utilise par PHP). Aussi, assurez-vous que PHP est correctement installé et fonctionne.

Assurez-vous que vous utilisez la page du serveur Web comme tel: et non pas directement http://localhost/yourpage.php à partir du fichier lui-même comme par exemple: file://yourpage.php

Je ne sais pas si cela va aider, mais les meilleures pratiques exigent que chaque fois que vous écrivez dans une nouvelle fenêtre en utilisant JavaScript, vous devez ouvrir et fermer le document. Pouvez-vous essayer?

function makewindows(){
  var child1 = window.open ("about:blank");
  child1.document.open();
  child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
  child1.document.close(); 
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top