1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34

    Par défaut for each -> détecter et changer <input> et <select> selon key et value de l'array

    Bonjour.

    Suite à la vérification php d'un formulaire, ma fonction retourne une erreur.

    Je retourne dans le formulaire et j'aimerai replacer les valeur à leur place.

    J'ai fais un code que je n'ai pas encore vérifier car je viens de le changer en un code plus simple car je ne parviens pas a tester et récupérer le key d'un array JS pour l'utiliser comme une variable.


    Mon array JS construit en phpi :

    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
     
    echo "<script type="text/javascript">
    var jsarray_key = new Array();
    var jsarray_value = new Array();
    var key= '';
    var value='';
    </script>";
     
     
     
    // $php -> var JS 
    function js_var($array)
    {
        echo "<script type='text/javascript'>";
        $i=0;
        foreach($array as $key => $value)
        {
            // Toutes les variable KEY dans un array JS
            echo "jsarray_key[".$i."]='".$key."'";
     
            // Toutes les variable VALUE dans un array JS
            echo "jsarray_value[".$i."]='".$value."'";        
     
            $i++;
            // Ca me gonfle de devoir créer deux array pour ça...
        }
        echo "</script>";
    }

    Dans ma page JS
    J'ai noté tous mes inputs avec un id
    Cet id identique au key de mon jsarray.
    Les valeurs des inputs sont identiques aux values de mon jsarray selon le key.

    key => value
    id => value

    Etant très mauvais en JS j'ai un code très mauvais :

    Pour me repérer dans mes deux select, l'un à des options id/nom en numérique, l'autre en alphabétique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <script type='text/javascript'>
    for(var i= 0; i < jsarray_key.length; i++)
    {
        ikey = jsarray_key[i];
        ivalue = jsarray_value[i];
        if (document.getElementById(ikey).nodeName == input)
        {
            document.getElementById(ikey).value = ivalue;
        }
        elseif(isNaN(ikey) == true){document.getElementById('critiques').namedItem(ikey).selected=true;}
        else{document.getElementById('residence').namedItem(ikey).selected=true;}
    }
    </script>
    Bonne journée

  2. #2
    Membre à l'essai Avatar de Biboude
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2017
    Messages : 30
    Points : 20
    Points
    20

    Par défaut

    Hello !

    Alors tu a dit plus haut que tu avait une erreur tu pourrais déjà commencé par là

    Quelle est ton erreur ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34

    Par défaut

    Je me suis mal exprimé. C'est effectivement trompeur comme c'est écris.

    J'ai programmé un code informant d'une erreur suite à la validation d'un formulaire.
    Si le form est en erreur sur une des restrictions programmées, la page se recharge avec les information d'erreur.

    Cependant j'aimerai éviter que l'utilisateur ai à replacer toutes ses informations.
    Un retour à la page précédente n'est pas une méthode recommandée.


    J'ai bien avancé sur le code.
    Mais c'est encore en débug donc je ne le met pas plus à jour.

    Je pense parvenir à replacer les inputs, le select et le champ de texte.

    En revanche, est il possible de resélectionner dans un champs d'upload le fichier que l'utilisateur avait sélectionné sur son pc ?
    Je suppose que non.

    Bonne journée

  4. #4
    Membre à l'essai Avatar de Biboude
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2017
    Messages : 30
    Points : 20
    Points
    20

    Par défaut

    Ce que tu veux c'est si il y a une erreur dans un input du form le rechargé et remettre les "BONS" input de l'utilisateur ?

    Mmh !

    je suppose que tu a surement des fonctions ou de la regex qui vérifie t'es input .

    Tu pourrais faire un tableau ou tu va sauvegardé les inputs et si il y en n'a un qui est mauvais. Et bien tu remet les bons a leur place. C'est low cost mais bon ^^

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34

    Par défaut

    Je pense comprendre que non c'est pas ça.

    Form JS -> Divers test php et sql -> erreur ->retour au form.

    Je ne veut pas que l'utilisateur est à tout retaper a cause d'une seul erreur.

    Là je viens de finir le php/sql.
    Je suis en train de créer deux array JS car je ne sais pas lire les key en JS.
    Un array avec les nom/id des input, l'autre avec les values.
    C'est un code de pauvre mais ca devrait passer tant que j'ai autant de nom/id que de values.

    Ensuit un truc genre document.getElementById ...

    Mais coté fichier je suppose que c'est impossible de resélectionner les fichiers que l'utilisateur avait selectionné pour l"upload.
    En général question de sécurité on a pas d'accès au disque client.

    Bonne journée

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34

    Par défaut

    Bon , voilà j'y finis par y arriver.

    C'était plus simple que ce que je pensais.
    Je partais vers trop compliqué
    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
     
     
    if (php2js === 1)
    {
        for(i= 0; i < jsarray_key.length; i++)
        {
     
            ikey    = jsarray_key[i];
            ivalue  = jsarray_value[i];
     
            if (document.getElementById(ikey).nodeName == 'INPUT')
            {
                document.getElementById(ikey).value = ivalue;
            }
            else if (document.getElementById(ikey).nodeName == 'TEXTAREA')
            {
                document.getElementById(ikey).value = ivalue;
            }
            else if (document.getElementById(ikey).nodeName == 'SELECT')        
            {
                document.getElementById(ivalue).selected=true;
            }
        }
    }

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

Discussions similaires

  1. xsl:for-each avec un parametre pour select
    Par arnog dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 26/08/2008, 14h09
  2. fonction for each key .......
    Par trialrofr dans le forum ASP
    Réponses: 13
    Dernier message: 10/01/2005, 15h29
  3. apply-templates et for-each
    Par d'Oursse dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/05/2004, 09h38
  4. utilisation de for each
    Par billoum dans le forum ASP
    Réponses: 5
    Dernier message: 19/03/2004, 16h30
  5. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 13h56

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