Pb de php dans une fonction Javascript

lerenard80 Messages postés 3 Date d'inscription dimanche 29 janvier 2006 Statut Membre Dernière intervention 31 mars 2010 - 30 mars 2010 à 19:32
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 13 avril 2010 à 19:02
Voici ma page :



<script type="text/javascript">

function test(valeur) {
var w = new ActiveXObject("WScript.Shell");
w.run ('"c:\\progra~1\\easyph~1.0\\www\\acl\\test.bat" '+valeur.innerHTML);
<?php
$fichier = fopen('c:\\progra~1\\easyph~1.0\\www\\acl\\test.txt','r');
$premier = fgets('c:\\progra~1\\easyph~1.0\\www\\acl\\test.txt', 120);
fclose($fichier);
?>
var prenom = <?php echo $premier ?>;
document.getElementById("affichagePrenom").innerHTML = prenom.innerHTML;
}
</script>




abcde


fghij


klmno












La fonction en PHP à l'interieur du Javascript ne fonctionne pas, alors que si je met tout ce qui est php en dehors du javascript ca marche. Je ne comprend pas pourquoi

Merci d'avance

4 réponses

kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
31 mars 2010 à 13:21
BONJOUR


La fonction en PHP à l'interieur du Javascript ne fonctionne pas


Ca ne m'étonne pas. Ce qui m'étonne par contre c'est que ça puisse fonctionner "en dehors du javascript", parce que :

$premier fgets('c:\\progra~1\\easyph~1.0\\www\\acl\\test.txt', 120);

>
$premier = fgets($fichier, 120); 




Kohntark -
0
lerenard80 Messages postés 3 Date d'inscription dimanche 29 janvier 2006 Statut Membre Dernière intervention 31 mars 2010
31 mars 2010 à 13:30
En effet, erreur de ma part durant le copier/coller

Ma page était bien la suivante :



<script type="text/javascript">

function test(valeur) {
var w = new ActiveXObject("WScript.Shell");
w.run ('"c:\\progra~1\\easyph~1.0\\www\\acl\\test.bat" '+valeur.innerHTML);
<?php
$fichier = fopen('c:\\progra~1\\easyph~1.0\\www\\acl\\test.txt','r');
$premier = fgets($fichier, 120);
fclose($fichier);
?>
var prenom = <?php echo $premier ?>;
document.getElementById("affichagePrenom").innerHTML = prenom.innerHTML;
}
</script>




abcde


fghij


klmno











J'ai abandonné, je vais me débrouiller autrement, mais merci quand même
0
roymatthieu Messages postés 112 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 3 février 2011 1
12 avril 2010 à 13:04
Salut,

Tel quel, il est évident que cela ne fonctionne pas car tu demandes à Javascript d'interpreter du langage php.

Quand on clique sur le div, Javascript doit ouvrir un fichier via php alors que la page à déjà été générée et se sans utilisé d'ajax !

ensuite
comporte une erreur étant donné que tu lui demande de renvoyer "this". "this" c'est lui-même et cela se traduit par le contenu de la balise id (ici manquante) qui doit être unique.

Je pense que devrait utiliser de l'ajax pour appeller une page php, faire le traitement et renvoyer un valeur exploitable avec Javacript...

Bien à toi.
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
13 avril 2010 à 19:02
Salut,

@roymatthieu
Tel quel, il est évident que cela ne fonctionne pas car tu demandes à Javascript d'interpreter du langage php.
Quand on clique sur le div, Javascript doit ouvrir un fichier via php alors que la page à déjà été générée et se sans utilisé d'ajax !


Non, le code PHP est interprété avant, et écrit la variable JS prenom, ce qui doit donner au final (page envoyée au client) :

<script type="text/javascript">

function test(valeur) {
  var w = new ActiveXObject("WScript.Shell");
  w.run ('"c:\\progra~1\\easyph~1.0\\www\\acl\\test.bat" '+valeur.innerHTML);
  var prenom = première ligne du fichier;
  document.getElementById("affichagePrenom").innerHTML = prenom.innerHTML;
}
</script> 


Là on voit qu'il peut y avoir plusieurs pbs :
- si la variable JS est une string, il manque des "
- il y a un risque de "bug" avec l'inclusion d'un éventuel retour à la ligne
- document.getElementById("affichagePrenom").innerHTML prenom.innerHTML;
>
document.getElementById("affichagePrenom").innerHTML = prenom;


ensuite
comporte une erreur étant donné que tu lui demande de renvoyer "this". "this" c'est lui-même et cela se traduit par le contenu de la balise id (ici manquante) qui doit être unique.


Non, this ne se traduit pas par le contenu de "id" mais par "l'objet de lui même" (atchoum !!!)
La propriété doit bien sur exister pour le type d'objet, mais il n'est pas requis de la préciser dans le code HTML.

Bref, je ne comprends toujours pas comment ça peut fonctionner, code PHP "en dehors" ou non du code JS.

Cordialement,


Kohntark -
0
Rejoignez-nous