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 :

[DOM] Comment remplir un champ de type array via Javascript ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut [DOM] Comment remplir un champ de type array via Javascript ?
    Bonjour,
    Voilà j’ai une fonction JS qui a chaque exécution récupère une valeur.
    J’ai un formulaire avec un champ caché destiné à accueillir toutes les valeurs renvoyé par ma fonction JS.

    Comment fait-on ?

    Code JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function deleteCurrentRow(obj,num_tbody,id_prestation_sup)
    {
    		….  Début instruction ….
     
    var id_prestation_sup = id_prestation_sup;
     
    …. Suite …
     
    }
    code HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <form name="reservation" id="reservation" method="post" action="">
    <input type="hidden" name="prestation_a_supprimer[]" value="">
    Ce que je souhaite faire c’est mettre chaque id_prestation_sup récupérer le champ :

    <input type="hidden" name="prestation_a_supprimer[]" value="">

    Par avance merci

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["reservation"].elements["prestation_a_supprimer[]"].value+=id_prestation_sup

  3. #3
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut
    Merci Matthieu2000, mais cela ne fonctionne pas pas
    page de test

    message d'erreur :
    document.forms.reservation.elements['prestation_a_supprimer[]'] has no properties


  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par tavarlindar Voir le message
    Merci Matthieu2000, mais cela ne fonctionne pas pas
    page de test

    message d'erreur :
    document.forms.reservation.elements['prestation_a_supprimer[]'] has no properties
    Ca aurait dû

    Qu'est ce qu'il vient faire là ce ";" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="prestation_a_supprimer[];"


    A+

  5. #5
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut
    exacte !
    j'avais modifié avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('array_prestation_a_supprimer').value+= id_prestation_sup;
    J'ai remis depuis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms["reservation"].elements["prestation_a_supprimer[]"].value+=id_prestation_sup;
    Par contre, je suis surpris par le contenu obtenu.
    Les datas sont concaténées. Si je supprime 3 lignes, j'ai un array avec une seule valeur.... Que je fasse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms["reservation"].elements["prestation_a_supprimer[]"].value+=id_prestation_sup;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms["reservation"].elements["prestation_a_supprimer"].value+=id_prestation_sup;
    C'est pareil !

    Code Php pour récupérer :
    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
     
    // Suppression des prestations 
    if (isset($_POST['prestation_a_supprimer'])) {
     foreach($_POST['prestation_a_supprimer'] as $key => $id_prestation_a_deleter) {
       echo "<p>".$key." : ".$id_prestation_a_deleter."</p>";
      }
    }
     
     
    // ou 
     
    if($_POST["prestation_a_supprimer"]) { 
       for ($j = 0; $j < count($_POST["prestation_a_supprimer"]); $j++)
       {
       $id_prestation_a_supprimer = $_POST["prestation_a_supprimer"][$j];
       $requete_suppression_presta = "DELETE FROM prestation WHERE id_prestation ='{$id_prestation_a_supprimer}'";
       echo $requete_suppression_presta. '<br />';
      //ExecRequete ($requete_suppression_presta, $connexion);
       } 	
    }
    Alors soit je rajoute un caractère séparateur et je split derrière (explode), soit .... j'essaye d'avoir un vrai array si vous voyez ce que je veux exprimer.

    page test pour mieux comprendre

    supprimer 2 ou 3 lignes et valider. Vous aurez à l'écran le résultat du code php

  6. #6
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut
    Dites moi si je me trompe mais : si j'effectue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    document.forms["reservation"].elements["prestation_a_supprimer[]"].value+=id_prestation_sup +'|' ;
    A chaque appel de la fonction je remplis bien prestation_a_supprimer[] qui est un array avec un seul élément avec les différents id_prestation seront séparés par | . Du du coup aucun intérêt, ce la complique le traitement derrière.

    Autant utiliser un simple champ (caché) prestation_a_supprimer.
    avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms["reservation"].elements["prestation_a_supprimer"].value+=id_prestation_sup +'|' ;
    et côté serveur un code du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if($_POST["prestation_a_supprimer"]) { 
    $tab_id_a_supprimer = explode("|",$_POST['prestation_a_supprimer']);
    $nb_elts = count($tab_id_a_supprimer)-1;
       for ($j = 0; $j < $nb_elts; $j++)
       {
       $id_prestation_a_supprimer = $tab_id_a_supprimer[$j];
       $requete_suppression_presta = "DELETE FROM prestation WHERE id_prestation ='{$id_prestation_a_supprimer}'";
       echo $requete_suppression_presta. '<br />';
      //ExecRequete ($requete_suppression_presta, $connexion);
       } 	
    }
    NON ?

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

Discussions similaires

  1. Comment remplir les champs d'une autre application ?
    Par rico32fr dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/06/2006, 08h54
  2. Réponses: 5
    Dernier message: 10/05/2006, 15h47
  3. Réponses: 1
    Dernier message: 03/05/2006, 10h02
  4. [Sql] Comment inserer un champs de type Date ?
    Par ridondo dans le forum DB2
    Réponses: 4
    Dernier message: 28/11/2005, 14h40
  5. comment remplir 2 champs avec une seule listbox
    Par Didi17 dans le forum Access
    Réponses: 3
    Dernier message: 19/10/2005, 09h42

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