PHP et Javascript

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour, pour m'entraîner aux languages PHP et Javascript, j'aimerai coder une zone de texte, où, si le mot entré est le même que celui qui est retenu dans la base de données, la zone de texte disparaît. Alors chercher dans la base de données, c'est facile, mais appeler une fonction javascript dans le code PHP, c'est plus balèze !
Alors je voulais écrire ça :

if($reponse)
{
echo '<script>Efface()</script>';
}

Mais ça ne fonctionne pas, alors je ne sais pas si le problème vient de ' et de ", mais je ne trouve pas vraiment le problème comme ça. Voyez-vous le problème ?
Merci d'avance !
A voir également:

10 réponses

Utilisateur anonyme
 
Bonjour

Syntaxiquement, ton code est correct. Par contre "appeler une fonction javascript dans le code PHP" n'est pas possible avec le sens habituel d'"appeler une fonction" en informatique : le PHP s'exécute sur une machine et le Javascript sur une autre.
Ce que ton code fait, c'est que s'il y a une certaine condition ($reponse) qui est vérifiée dans le serveur, le serveur va inclure un bout de code javascript dans ta page, qui va s'exécuter (si la fonction Efface() est définie) chez ton visiteur.
C'est bien ça que tu cherches à faire ?
1
Pitet Messages postés 2845 Statut Membre 527
 
Salut,

Donc apparemment tu n'utilise pas ajax donc ton code php est correct (tu dois voir le code
<script>Efface()</script>
dans le code source de ta page).

A mon avis l'erreur vient du fait que tu appel ta fonction Javascipt Efface() alors que celle-ci n'est pas encore définie, ou que le textarea sur lequel ta fonction agit n'est pas encore chargé dans ta page.
Pour cela deux solutions :
- soit tu fait tes appels de fonction javascript tout à la fin de ta page html (avant la fermeture de la balise body)
- soit tu utilises l'événement onload pour attendre que ta page soit complétement chargée avant d'exécuter ton javascript.

Pour la deuxième solution, tu peux essayer comme ceci :
if ($reponse) {
    echo '<script>window.onload=function(){ Efface() };</script>';
}


Bonne journée
1
ThEBiShOp Messages postés 9307 Statut Contributeur 1 566
 
C'est qui les neuneus qui s'amusent à mettre des -1 à tour de bras ?
0
Utilisateur anonyme
 
@ThEBiShOp
Non coupable ! Même s'ils ne sont pas tous volés ;-)
0
maka54 Messages postés 721 Statut Membre 80
 
je reconnais que mon post le mérite,j'ai écris trop vite :s https://forums.commentcamarche.net/forum/affich-29313147-php-et-javascript#2

cela dit çà fonctionne, j'utilisais cette methode lors d'un envoie de formulaire via une iframe (upload de fichier) ...

d'ou le window.top.window ...
0
ThEBiShOp Messages postés 9307 Statut Contributeur 1 566
 
Quasiment tous les messages avaient au moins un -1...
y'en a un qui a pas du apprécier de se prendre le 1er ;)
0
Utilisateur anonyme
 
"Un visiteur entre un mot dans la zone de texte"
Comment le serveur est-il averti de ce mot ? Le visiteur clique sur un bouton ? Ou tu as un "onchange" dans ton input ?
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
Oui il y a un bouton "valider". Je n'ai pas précisé tout ça parce que je pensais que c'était seulement un problème de syntaxe avec le echo...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Quand on clique sur 'valider', on valide un formulaire ou tu fais un appel au serveur par Ajax ?
0
enqueteactualite Messages postés 76 Statut Membre 16
 
tu peux faire comme suite :

partie php (en supposant que ton code php citer plus haut est bon) :

if($reponse) 
{ 
echo "<script>
window.onload=function(){
  document.getElementById('id_txt').style.display = 'none'; 
}; 
</script>"; 
} 


----------

Partie html :

<p id="id_txt">voici le texte à cacher</p>
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
Et bien en fait, en faisant simplement
<?php
id($reponse)
{
?>
<script language="Javascript">fonction()</script>;
<?php
........
}
?>

Ca fonctionne !
0
Utilisateur anonyme
 
C'est absolument équivalent à ce qu'il y avait dans ton message initial. La seule différence, c'est que tu as précisé language ="Javascript", alors que l'attribut language est déprécié dans les versions récentes de HTML.
0
maka54 Messages postés 721 Statut Membre 80
 
Bonjour, comme ceci

if($reponse)
{
  echo '<script type="text/javascript">window.top.window.Efface();</script>';
}
-1
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
Oui c'est bien ça. Et j'ai beau essayer tous les codes donnés au dessus, ça ne fonctionne pas.
En fait, le visiteur entre un mot dans la zone de texte et en fonction de ce qui sera inscrit, un élément va disparaître ou apparaître de la page du visiteur
-1
adriellens Messages postés 201 Statut Membre 4
 
Essaye
<?php
if($reponse)
{
echo '?><script>Efface()</script><?php';
}
?>
J'ai jamais testé mais.. Pourquoi pas ? :)
-2