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 :

passer parametre a une fonction


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut passer parametre a une fonction
    Bonjour!

    j'ai un problème de passage de paramètre.
    j'ai une fonction avec un passage de paramètre (une date). il se trouve que lors du passage de paramètre, la fonction calcule la date.


    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ma_date="2010-1-1";
     ma_fonction(ma_date);
    dans ma fonction lorsque je récupère le paramètre, je me retrouve avec 2008 au lieu de "2010-1-1". ça fait une soustraction de mon paramètre.

    j'ai tenté de convertir le paramètre en string mais toujours le même problème.

    ma_fonction(ma_date.toString)


    j'aimerai savoir comment contourner ce problème

    merci

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Bonjour,

    Essayez toujours ceci mais je n'y crois pas trop:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var ma_date= new String("2010-1-2");

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    à mon avis c'est ta fonction qui convertit en string...
    il serait interessant de la voir cette fonction ...

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    salut vermine!
    j'ai essayé ta solution mais j'ai toujours le me problème

  5. #5
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Effectivement nous serions très intéressés de voir le code de la fonction. Pour test, essaie çà...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      var date="2010-1-1";
      function identite(d) {
        return d;
      }
     
      alert(identite(date));
    et tu verras qu'il n'y a pas de souci...

    à la différence de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      var date="2010-1-1";
      function identite(d) {
        return eval(d);
      }
      
      alert(identite(date));
    Ne chercherais tu pas à évaluer la chaine pour fabriquer un objet Date par hasard ?

    ERE

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    je ne fai rien d'abord dans ma fonction

    voila comment ça fonctionne:

    j'appelle ma fonction javascript en php:


    ma_fonction("2010-1-1")

    voici ma fonction javascript:

    function ma_fonction(ma_date)
    {
    alert (ma_date);
    setTimeout("ma_fonction("+ma_date+")",1000)


    }

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    je ne fai rien d'abord dans ma fonction

    voila comment ça fonctionne:

    j'appelle ma fonction javascript en php:


    ma_fonction("2010-1-1")

    voici ma fonction javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function ma_fonction(ma_date) 
    {
      alert (ma_date);   
      setTimeout("ma_fonction("+ma_date+")",1000)
    }
    le premier appel de la fonction (en php) se passe correctement.
    c'est lorsque la fonction s'appelle elle meme(dans le settimeout) en javascript que ça pose problème.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    rappel...php est interprété coté serveur ...
    javascript coté client ...


    c'est plus qu'intriguant de dire que ta fonction javascript ne fait rien et que quand tu 'appelles en php elle evalue une chaine en integer ?????


    Il nous manque le php pour comprendre ...

    En tout etat de cause appeler une fonction javascript en php est un non sens

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    SpaceFrog, quand je dit que je ne fai rien, je voulai dire par la que je ne fait de traitement particulier sur ma variable.....

    je pense que le message précédent est parti vite, je l'ai corrigé

  10. #10
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Les choses sont maintenant claires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setTimeout("ma_fonction("+ma_date+")",4000)
    or ma_date = "2010-01-01" donc concrètement tu a écris ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("ma_fonction(2010-01-01)",4000)
    et cela fait donc bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("ma_fonction(2008)",4000)
    .

    Tu dois écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("ma_fonction(\""+ma_date+"\")",4000)
    ERE

    EDIT
    -----
    Perso je préfère plutôt;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(function() { ma_fonction(ma_date); },4000);

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    merci emmanuel.remy

    ça fonctionne parfaitement. j'ai utiliser ta 2ème méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(function() { ma_fonction(ma_date); },4000);
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/10/2006, 09h48
  2. [C#] Passer des contrôles comme parametre dans une fonction
    Par sara21 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/09/2006, 13h05
  3. Passer un contrôle en paramètre d'une fonction
    Par Kinian dans le forum Access
    Réponses: 6
    Dernier message: 15/05/2006, 11h15
  4. Réponses: 12
    Dernier message: 25/01/2006, 07h29
  5. Passer un tableau en parametre dans une fonction js
    Par hellmaster78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2005, 14h35

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