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 :

Un formulaire et une balise <a>


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Un formulaire et une balise <a>
    bonjour

    Voici le code source php d'un lien qui lance un formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      echo "\t\t<th>
    \t\t\t<a href=\"JavaScript:document.forms['{$nomPost["colonneSubmit"]}'].elements['{$nomPost["colonneSens"]}'].value = '$valeursens';
    document.forms['{$nomPost["colonneSubmit"]}'].elements['{$nomPost["colonneNom"]}'].value = '$nomColonne';
    document.forms.{$nomPost["colonneSubmit"]}.submit()\"/>
    $value</a>
    \t\t\t</th>\n";
    Le code du formulaire en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    t<form id=\"{$nomPost["colonneSubmit"]}\" method=\"post\" action=\"$fichierpost\">
    \t\t<input type=\"hidden\" id=\"{$nomPost["colonneNom"]}\"/>
    \t\t<input type=\"hidden\" id=\"{$nomPost["colonneNom"]}\"/>
    \t\t<input type=\"hidden\" id=\"{$nomPost["colonneSubmit"]}\"/>
    \t</form>
    La page s'affiche, pas d'erreur en php. Mais quend je clique sur le lien il ne se passe rien (quelquesoit le navigateur). Neanmoins ie m'indique une erreur:
    'document.forms.classementable.elements.sens'a la valeur Null ou n'est pas un objet.

    Je veux juste, quand je clique sur un lien, initialise les valeurs du formulaire et le soumettre.
    Le lien est dans un tableau qui en contient plusieurs, tous du même type.
    Je pourrais mettre le formulaire directement dans le tableau mais il ne sera plus valide xhtml1 strict.

    merci pour votre aide

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    le fonctionnement des formulaires (ainsi que les syntaxes JS associées, que tu utilises ici) utilisent les name (ex : ....elements['name_input'].value) et non les ID. Or tu n'as défini que ces derniers.

    De plus un ID doit être unique. Ca ne semble pas être le cas avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    t<form id=\"{$nomPost["colonneSubmit"]}\" method=\"post\" action=\"$fichierpost\">
    \t\t<input type=\"hidden\" id=\"{$nomPost["colonneNom"]}\"/>
    \t\t<input type=\"hidden\" id=\"{$nomPost["colonneNom"]}\"/>
    \t\t<input type=\"hidden\" id=\"{$nomPost["colonneSubmit"]}\"/>
    \t</form>
    De plus dans ton cas, pour pouvoir récupérer les données sans ambigüité côté serveur, les name aussi devraient être différents.

    => rend tes ID uniques
    => donne des name distincts à tes input

    A+

  3. #3
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Sur le plan du php, j'attire ton attention sur les variables POST et GET.
    En effet, si ton serveur php a sa variable register_globals ON, tu pourras les utiliser comme tu le fais. Mais si c'est OFF, il te faudra passer par les variables super globales, telles que $_POST et $_GET.

    register_globals est par defaut OFF depuis qq annees, et est ammene a disparaitre pour etre definitivement OFF.

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    tu as deux champs "colonneNom"
    0 champ "colonneSens"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    merci pour votre aide.
    Effectivement j'ai deux champs "colonneNom". J'ai corrige a midi cette erreur.
    j'utilise effectivement la super variable $_POST.
    Je croyais que d'un point de vue doctype xhtml1.1 strict l'usage des names n'étaient pas recommande?
    Je vais mettre en application tous vos conseils.
    merci encore

  6. #6
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Bigstef Voir le message
    Je croyais que d'un point de vue doctype xhtml1.1 strict l'usage des names n'étaient pas recommande?
    Ils sont toujours nécessaires dans l'utilisation classique d'un form.
    Par contre leur utilisation y est restreinte ...

    Et un ID doit être unique dans la page (cf. aussi "colonneSubmit") ...

    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    C'est bon. J'ai mis des names et rendu mes id uniques.Les liens fonctionnent correctement.
    Merci encore pour votre aide.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/03/2012, 20h23
  2. Formulaire: Accessibilité à une balise selon la valeur d'une autre
    Par student_php dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/10/2010, 14h27
  3. Transmettre valeur d'une balise div présente dans un formulaire
    Par nicoaix dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/04/2008, 15h33
  4. Lien vers un formulaire dans une balise iterate
    Par kleuk dans le forum Struts 1
    Réponses: 6
    Dernier message: 19/02/2007, 15h20
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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