PHP et Javascript

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - Modifié par pijaku le 18/12/2013 à 09:37
 Utilisateur anonyme - 17 déc. 2013 à 16:42
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
17 déc. 2013 à 11:10
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 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
17 déc. 2013 à 14:42
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
17 déc. 2013 à 14:56
C'est qui les neuneus qui s'amusent à mettre des -1 à tour de bras ?
0
Utilisateur anonyme
17 déc. 2013 à 15:13
@ThEBiShOp
Non coupable ! Même s'ils ne sont pas tous volés ;-)
0
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 17/12/2013 à 15:23
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
17 déc. 2013 à 15:31
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
17 déc. 2013 à 13:42
"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 mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
17 déc. 2013 à 14:07
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
17 déc. 2013 à 14:18
Quand on clique sur 'valider', on valide un formulaire ou tu fais un appel au serveur par Ajax ?
0
enqueteactualite Messages postés 70 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 16 mai 2015 16
Modifié par pijaku le 18/12/2013 à 09:38
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 mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
Modifié par pijaku le 18/12/2013 à 09:38
Et bien en fait, en faisant simplement
<?php
id($reponse)
{
?>
<script language="Javascript">fonction()</script>;
<?php
........
}
?>

Ca fonctionne !
0
Utilisateur anonyme
17 déc. 2013 à 16:42
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 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2013 à 09:59
Bonjour, comme ceci

if($reponse)
{
  echo '<script type="text/javascript">window.top.window.Efface();</script>';
}
-1
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
17 déc. 2013 à 13:23
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 171 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 18 décembre 2013 4
16 déc. 2013 à 23:53
Essaye
<?php
if($reponse)
{
echo '?><script>Efface()</script><?php';
}
?>
J'ai jamais testé mais.. Pourquoi pas ? :)
-2