IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonction de validation


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut Fonction de validation
    Bonjour tous le monde .


    Je suis un peu nul en JS et je solicite votre aide.

    Voici mon probleme je voulais créer une fonction en Js chargée de verifier si l'input cliquer correspond à la réponse attendu.

    dans le body:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <audio id="gagner" ></audio>	
    <audio id="perdu" ></audio>	
     
    <input  type="image"    src="template/boutona.php" id="1" name="1"    onclick=" javascript:this.src='template/boutonasel.php'; Validation('1') " />
     
    <input  type="image"    src="template/boutonb.php" id="2" name="2"  onclick=" javascript:this.src='template/boutonbsel.php'; Validation('2') "  />

    le probleme déjà et qu'il passe une premier fois dans la fonction sans avoir cliquer sur un input et je comprend pas pourquoi ?

    Fonction validation dans head:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
      function Validation(nom) {
     
       // je récupère la bonne réponse
      var rep = <?=$Ngame ->getrep($jo->getUserScore() ) ?>;
     
      //je regarde si il correspond à l'input
      if (rep == nom){
            //si gagner
     
     
            //je declenche une musique mais ça ne marche pas
            document.getElementById("gagner").setAttribute   ('src', 'sound/gagnez.swf');
    		document.getElementById("gagner").play();			
    //j'incrémente ma variable de +1 grace à une methode
    		 <?$jo-> AddScore()?>
     
    		// et je redirige 1 seconde plus tard pour la musique
    		var obj = 'window.location.replace("Vpre.html");'; 
            setTimeout(obj,100);  
     
     
     
      }else{
           //sinon perdu 
     
             // je declanche la musique qui ne marche pas
            document.getElementById("perdu").setAttribute('src', 'sound/Perdu.swf'); 
    		document.getElementById("perdu").play(); 
     
                // je baisse le drapeau gagner
     
               <?$jo -> Lose()?>
     
                // et je redirige 0.05 seconde plus tard pour la musique
    		var obj = 'window.location.replace("index.php");'; 
            setTimeout(obj,50); 
     
      }
     
    }


    désolé pour les explications mais comme je l'ai dit je ne maitrise pas du tout le JS.

    Merci en tous cas de votre aide.


    juste pour info

    voici les methodes
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // gestion score et gagne
    public function AddScore(){			 
    	$this->score +=1;
    }
    public function Lose(){			 
    	$this->gagne = 0;
    }

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut
    Bonjour,

    Je serais toi j'importerai jquery , ça simplifiera l'écriture du code , d'autant plus que tu n'es pas à l'aise.

    J'ai l'impression que tu fais appel à des fonctions php, au sein du js..
    Le js s’exécute coté client, il ne peut pas faire appel à des fonctions php qui elles s’exécutent coté serveur.

    Ensuite,

    si tu veux définir une fonction en js , utilise cette syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var Validation = function(nom){
     
    ...
     
    };

    Maintenant il faut savoir quand lancer la fonction, et c'est là que jquery simplifie bien les choses:

    On met une classe aux inputs (plus simple pour les sélectionner, pense css ça sera pareil ) . Mettons par exemple class="jeu-reponse"

    Maintenant il faut déclencher la fonction Validation quand on click dessus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    //On attend que la page et jquery soit chargé avant de faire quoi que ce soit
    $(document).ready(function(){
     
    //On lance une fonction au click sur les elements de classe jeu-reponse
    $(".jeu-reponse").click(function(event){
     
    //On coupe les eventuelles actions natives des élements cliqués 
    event.preventDefault();
     
    //On récupère le name
     
    var name = event.target.name;
     
    //On lance la fonction validation et c'est là que ça va se compliquer suivant la //réponse à la question que je vais poser juste en dessous. 
     
    Validation(name);
    });
     
    });

    Connais-tu la bonne réponse au sein de la page? En faite que veux-tu faire?
    C'est un jeu?

    Parce que si les points sont gérer coté serveur, le js ne peut pas appeler la fonction php directement... il n'y a pas de communication.
    Le php c'est coté serveur, le js coté client.

    Pourrais-tu expliquer en français ce qu'il doit exactement se passer une fois que l'utilisateur a cliqué sur un input?

    (Il est tout a fait possible d'interroger le serveur php en js, et faire des actions selon la réponse etc... mais pour l'instant vu que je ne sais pas trop ce que tu veux faire, je préfère attendre ta réponse)


    Bien cordialement

    Antho

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut
    Désoler pour la lenteur de la réponse mais j'ai résolu mon problème par un stratagème.

    je demande au javascript de redirigé vers une nouvelle page php qui elle gère la fonction.

    C'est pas très pro , ni propre mais ça marche.

    Par contre j'ai toujours mes problèmes de son
    en effet le code suivant ne marche pas et j'ai pas d'erreur .

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <head>
    <SCRIPT language="JavaScript" >
    document.getElementById("gagner").setAttribute('src', 'sound/gagnez.swf');
    document.getElementById("gagner").play();
    </SCRIPT>
    </head>
    <body  >
    <audio id="gagner" ></audio>	
    <audio id="perdu" ></audio>	
    </body>

    Merci en tous cas pour tes explications qui m’ont bien été utiles et de ton aide.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("gagner").setAttribute('src', 'sound/gagnez.swf');
    Où as-tu vu qu'un fichier .swf est un format valide pour une balise <audio> ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. AS3-PHP, fonction de validation de fonctionne pas.
    Par azetaz dans le forum Langage
    Réponses: 4
    Dernier message: 30/11/2008, 22h18
  2. fonction pour valider une adresse ip
    Par charlie_p07 dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/10/2008, 14h52
  3. Souci avec une formule par une fonction Selection.validation
    Par mennix dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 02/08/2007, 22h45
  4. Fonction pour valider une URL
    Par alejandro dans le forum Langage
    Réponses: 4
    Dernier message: 06/07/2007, 18h34
  5. appel de fonction sur validation de formulaire
    Par PAYASS59 dans le forum Langage
    Réponses: 15
    Dernier message: 17/01/2006, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo