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

Langage PHP Discussion :

Formulaire et ancre [Fait]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Formulaire et ancre
    Salut,

    Voilou j'ai un formulaire classique pour ajouter des commentaires à une page. Lorsque l'on valide le formulaire, je fais un PHP_SELF et je rappel la même page.
    En debut de page je verifie en PHP si les données envoyé sont correct (si il n'y pas de champ vide par ex), si c'est le cas j'affiche un message en rouge comme quoi il y a un erreur, sinon j'ajoute le commentaire dans la base et je l'affiche.

    Dans les deux cas, en fonction de ce qui se passe, j'aimerais me positionner dans la page. Soit sur le formulaire s'il y a une erreur, soit sur le dernier commentaire ajouté.
    Voilà une page pour exemple:
    http://www.under-gre.com/actu.php?idnews=29

    J'ai mis des ancres, mais comment dire a ma page après avoir verifier si il y erreur ou non, de se positionner à telle ou telle ancre.

    Any idea?

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Je pense que tu vas être obligé d'utiliser la fonction header() pour rediriger le client une fois l'opération terminée, sans quoi ton ancre existe mais tu n'as pas dit au client de l'utiliser.

    Sinon, puis-je te suggérer d'utiliser __FILE__ plutôt que $_SERVER['PHP_SELF'] ? Il n'y a pas vraiment de raison à cela, simplement je trouve cela plus lisible (et accessoirement plus rapide à écrire).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Peux-tu m'en dire plus sur ta suggestion Kirkis ?

    Parce que j'ai remarqué que php_Self ne fonctionne pas avec les url rewritées (ou j'ai mal testé) et peut être que ce _FILE_ que ne connais pas pourrait résoudre le problème.
    C'est pas parce que j'ai tort que vous avez raison.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci pour le conseil pour PHP_SELF.
    Par contre pour ce qui est du header je trouve ça bizard. Ou le placer dans ma page? A la fin de mon code?

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Toutes les infos sur __FILE__ peuvent être trouvées ici : http://es.php.net/reserved/

    Pour header(), oui, c'est à la fin de l'exécution du script. Redirige vers la page en incluant l'ancre dans l'URL appelée.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci pour ses réponses, mais je vais opter pour une autre solution.
    Je garde mon système de verification par php, et je vais ajouter une fonction javascript au moment de l'envoi qui verifie s'il y a des erreur ou non, et determinera l'ancre a utilisé.
    Merci encore A+.

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Tu y es presque, pourtant !

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: '.basename(__FILE__):'#ancre');
    Ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fichier = basename(__FILE__);
    $ancre = 'xxx';
    header("Location: $fichier#$ancre");
    C'est selon ta préférence

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu ne dois pas vérifier un formulaire uniquement par js, car il peut être désactivé, et que tu n'as aucune certitude sur les données transmises.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Je sais vg33, je voulais me servir du javascript seulement pour choisir la bonne ancre.
    J'ai essayé avec le header mais j'ai un message d'erreur.
    Ou dois je le placer exactement? A la fin du code de ma page, après la balise</html>?

    Help Please...

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu ne peux pas mettre le focus sur ton ancre ?

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ah pardon, j'ai omis un détail. L'appel à la fonction header() suppose que tu n'as rien envoyé au navigateur jusque-là.
    De toute manière, puisque tu vas l'envoyer ailleurs, il est bien inutile d'afficher quoi que ce soit, n'est-ce pas ?

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Un simple script devrait suffire, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    document.getElementById('ton_ancre').focus();
    </script>

  13. #13
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    J'essaie généralement de trouver des solutions qui fonctionnent dans la majorité des cas. JS étant une techno client, elle peut être mal supportée ou désactivée :/

  14. #14
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 306
    Points : 15 634
    Points
    15 634
    Par défaut
    Citation Envoyé par Kirkis
    J'essaie généralement de trouver des solutions qui fonctionnent dans la majorité des cas. JS étant une techno client, elle peut être mal supportée ou désactivée :/
    exactement

    surtout qu'il est possible de mettre une ancre avec header. essaye le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    header('Location: http://php.developpez.com/faq/?page=correction_erreurs#erreur_headers_already_sent');
    ?>
    ce code t'enverra directement à l'adresse suivante où tu trouvera des explications sur les erreurs possibles avec la fonction "header"
    http://php.developpez.com/faq/?page=...s_already_sent

Discussions similaires

  1. Ancré un formulaire dans le formulaire MDI
    Par eddyphan dans le forum C#
    Réponses: 1
    Dernier message: 29/05/2013, 03h59
  2. [HTML] Ancre liée à formulaire fonctionne pas avec certains boutons "submit" sur ie6
    Par 12monkeys dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 28/02/2008, 21h30
  3. Ancre avec un formulaire
    Par KoosMos dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2008, 17h35
  4. Submit de formulaire et ancre nommée
    Par ssebuser dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2007, 08h54
  5. Ancre et validation de formulaire
    Par statoondeo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 17/01/2006, 17h00

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