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 :

[PHP-JS] Popup de saisie


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut [PHP-JS] Popup de saisie
    Bonjour,

    Je veux mettre à jour des données au travers d'une popup.

    Exemple :

    Page principale d'affichage d'une liste historique d'activité avec une date de début et de fin. Devant chaque ligne de l'historique, j'ai un bouton modifier.

    Peut-on avec php faire un affichage d'une popup de saisie d'information ?

    Faut-il utiliser javascript ?

    Un mixe des 2

    Merci

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut
    Salut.

    Il te faudrait un mixe des 2.

    En effet, le Php ne permet pas(à ma connaissance) de crééer de PopUp.
    Donc, tu dois ouvrirune page Php dans une nouvelle Popup.

    Puis, tu fais comme si c'était une page Php classique.

    En espérant ne pas m'être trompé...

    Bye

  3. #3
    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
    Par défaut
    Salut

    PHP effectue ses traitements sur le serveur, or un popup est quelque chose qui se passe du côté du client. Il est évident que PHP ne peut donc pas créer de popup. Cela dit, PHP peut générer du code HTML ou JavaScript permettant d'afficher ce popup auquel tu tiens tant.

  4. #4
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    C'est pas que j'y tienne particulièrement, mais afficher une page complète pour 3 données c'est un peu trop, donc au niveau design une popup c'est plus... enfin c'est moins...

    Bon.

    Popup javascript ou html

    html avec div et css je suppose, c'est mieux pas de contrainte d'activation de quoi que ce soit.

    J'ai fait ceci dans mon programme d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="javascript:window.location = 'maj_activite.php?send_id_table={$activite.id_active}&send_trt=Modifier';" value="Modifier">
    Puis j'ai un php qui initialise toutes les données et les mettra à jour en cas de validation.

    Et mon php appel ma popup html que j'ai défini comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form action="{$current_page}" method="post">
    	<div id="pop1">
    		<h1>Information</h1>
    		<div id="popcontenu">
    		Les champs de saisie sont ici
    		</div>
    	</div>
    </form>
    Mon css est :

    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
    29
    30
    31
    32
    33
    34
    35
    /*** Mise en forme des popups ***/
    #pop1, #pop2 {
    position: absolute;
    display:none;
    width: 30em;
    border: 3px double black;
    background: #f5f5dc;
    z-index: 500;
    font-size: 80%;
    }
    #pop1 p, #pop2 p {
    margin: 0 0.3em;
    }
    #pop1 h1, #pop2 h1 {
    font-size: 110%;
    margin: 0 0 0.5em 0;
    border-bottom: 1px solid black;
    background: white url(top.gif) left top repeat-x;
    color: black;
    text-align: center;
    }
     
    #popcontenu {	/*** Mise en fome du contenu de la popup (bordure, couleur du fond...) ***/
    	border: 1px solid black;
    	color: black;
    	background: #efefef;
    	margin: 0;
    	padding: 1em;
    	float: left;	/*** Très important, ne pas suprimer ! ***/
    	width: 97%;	/*** Les intitulés prennent x% de la largeur totale du formulaire... ***/
    	text-align: left;	/*** ... et ils sont alignés à droite... ***/
    	margin: 0;
    	padding: 0 .5em 0 0;
    	line-height: 1.8;	/*** ... et centrés verticalement. ***/
    }
    J'ai dû oublier quelque chose car ma popup fait toute la page ?




    Oui mais alors cette popup va écraser ma page d'appel.

    Un éclaircissement s'impose

  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
    Par défaut
    window.location n'a jamais permis de faireu n popup. Merci de consulter la FAQ JavaScript à ce sujet, tu auras un exemple complet (avec la taille de la fenêtre etc.) ^^

  6. #6
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Donc, javascript est obligatoire.

    Merci c'est déjà plus concret.

  7. #7
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    J'ai commencé à lire les faq javascript et je commence par :

    Comment ouvrir une pop-up?
    Je prend le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window.open("page.htm","PopUp",
    	"width=500,height=350,location=no,status=no,toolbar=no,scrollbars=no");
    Que je mets dans mon source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <body onload="window.open(maj_activite.html,"PopUp",
    	"width=500,height=350,location=no,status=no,toolbar=no,scrollbars=no");">
    Et j'exécute pour voir.

    Rien

    Cela commence mal

    Bon, je vais plus lin et je vois :

    Comment ouvrir une fentre pop-up qui restera au dessus des autres fentres?
    Je prend le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window.showModalDialog("page.html",null,
    	"dialogWidth:430px;dialogHeight:280px;center:1;scroll:0;help:0;status:0");
    Je le modifie en mettant le nom de ma page html et ... Je le met où ce code.

    Bon c'est pas clair du tout.

    Je reprends mon exemple du début :

    Exemple :

    Page principale d'affichage d'une liste historique d'activité avec une date de début et de fin. Devant chaque ligne de l'historique, j'ai un bouton modifier.
    Page principale constitué d'une partie php et d'une partie html.
    J'ai mon bouton.

    Mon bouton appel la popup html ?

    Si oui c'est dans mon php du programme principal que je dois gérer l'alimentation et la mise à jour des données de ma popup.

    C'est très embrouillé

  8. #8
    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
    Par défaut
    Je pense que ton problème est mal cerné. Un formulaire n'a qu'une destination et il n'est pas prévu que ce soit un popup. Les popups sont généralement une mauvaise idée, pour diverses raisons que je ne vais pas citer ici (cela a certainement déjà été fait par des centaines de personnes depuis plusieurs années).

    Peut-être peux-tu introduire la propriété target="_blank" dans la balise <form>, ce qui ferait essentiellement un popup dont tu ne pourrais pas controler l'apparence.

  9. #9
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Bon, en chechant on fini par comprendre

    1 - c'est le programme appelant qui définit que l'on va appelez une popup
    Pour cela insérer le javascript suivant (ou équivalent)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <SCRIPT type="text/JavaScript">
    function OuvrirPopup(page,nom,option) {
      window.open(page,nom,option);
    }
    </SCRIPT>
    Entre le 2 - Placer l'appel de la fenêtre par exemple sous la forme d'un bouton comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onClick="OuvrirPopup('maj_activite.php','popupsaisie','width=500,height=250,menubar=no,status=no')" value="Modifier">
    Vous avez remarqué, j'appel une page php, car je vais traiter le programme appelé comme un programme normal.

    Youpi, c'est trouvé

  10. #10
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Sans creuser très loin, jai abandonné l'idée de target="_blank" à cause de
    ici
    entre autre.

    Et puis le contexte d'utilisation des popups est dans un intranet avec obligation d'accepter les popup, utilisation de firefox fortement conseillé (voir obigatoire).

    En plus quand on tape "popup" " Javascript" dans le forum le résultat 13 pages, 312 discussions sur le sujet et j'en ai lu quelques un, je n'ai rien trouvé qui soit fanchement anti popup.

  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
    Par défaut
    Voici une raison : les navigateurs Firefox et Internet Explorer bloquent les popups, c'est leur comportement par défaut.

  12. #12
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Je ne suis pas concerné dans mon appli par cette restriction.

    D'autre part, apparemment il y a moyen de mettre des Popup malgré un antipopup.

  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
    Par défaut
    Crois-moi, si la seule raison qui te pousse à utiliser un popup est d'éviter de charger une "page complète", alors c'est un faux problème. Le navigateur met en cache toutes les ressources non HTML, le temps de chargement n'est pas réduit par le popup.

    Si tu ne veux pas suivre nos conseils, c'est ton problème mais ne t'étonne pas d'avoir mal au crâne au bout d'un moment

  14. #14
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Comme il est dit dans ma signature "Parfois, lent je suis, toujours par comprendre je finis."

    Pour comprendre, quelques infos me sont nécessaires.

    Avoir mal à la tête à cause des courants d'air si une fenêtre est ouverte.

    Seule une popup n'est ouvrable à la fois et ce n'est que pour mettre à jour une information de temps en temps. Le gros de l'utilisateur est de lire les infos enregistrées.

    Je vois des popup dans plein d'application et cela ne me gêne pas du tout.

    Attention je ne parles que de popup de traitement en aucun cas de popup de pub, d'image ou autre.

    Suivre les conseils oui bien sûr mais pas aveuglément

    Convaincu, il me faut être

  15. #15
    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
    Par défaut
    J'aurais mieux fait de ne pas ponter mon nez ici

    Ok, passons en revue les inconvénients des popups...
    • Nous avons besoin de JavaScript pour ouvrir un popup en le contrôlant un minimum (pas de barre d'adresse, taille figée, etc.), or JavaScript peut être désactivé => ce n'est pas universel
    • Il y a eu tellement d'abus publicitaires avec les popups que la majorité des navigateurs Web bloquent les popups (parfois en configuration par défaut) => une grande partie des internautes ne verront pas ton popup et, pire, n'effectueront pas les traitement qui y sont liés
    • Si le popup est finalement ouvert, il devient une fenêtre indépendante du site d'origine : dans certains cas, la fenêtre du popup peut passer en arrière-plan (que l'internaute en ait conscience ou non) => il est facilement oublié
    Tu en veux d'autres ?


    Avantages de la page classique (pas de popup) :
    • Aucun des problèmes ci-dessus
    • La navigation n'est pas divisée en plusieurs fenêtres
    • L'internaute n'a pas à suivre plusieurs fenêtres en visitant un seul site (je me répète mais c'est important), ce qui peut le dérouter et/ou l'énerver => sans popup, la navigation est fluide : si on clique sur un bouton pour continuer, la navigation continue vraiment (je parle ici de sémantique)
    • C'est largement plus simple à mettre en place, techniquement parlant
    • C'est aussi plus fiable, techniquement parlant (aucune dépendance à une techno client comme JavaScript)
    • Tout le monde y est largement habitué
    Un exemple de popup bien gavant pour faire quelque chose de similaire à ce que tu souhaites faire : le Webmail d'Alice. J'ai une adresse @libertysurf.fr et j'ai un mal monstrueux à me déloguer de leur site depuis qu'ils ont mis en place le truc par popup... La page de logout part du principe qu'elle n'a qu'à ouvrir le popup pour que la session soit détruite, donc il y a une redirection pendant que le popup s'ouvre. Résultat : le navigateur bloque le popup et je n'ai pas le temps de lui demander d'autoriser le site à ouvrir des popups qu'il m'a déjà envoyé sur une autre page, en supposant que j'ai été correctement déconnecté. C'est bien sûr faux, puisque le popup n'a jamais pu être ouvert. Je suis obligé d'ajouter le site à la main dans les préférences de mon navigateur, tu avoueras que c'est très peu pratique et que très peu de monde s'en souciera. Imagine dans un cyber café, un site pareil est une catastrophe. Sans popup, il n'y aurait aucun de ces problèmes...

  16. #16
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Tu lis mon post ?

    Environnement intranet, pas d'internaute.

    Navigateur imposé, javascript activé, popup restant obligatoirement au dessus des autres toujours apparente.

    Les seuls arguments que je peux comprendre sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # C'est largement plus simple à mettre en place, techniquement parlant
    # C'est aussi plus fiable, techniquement parlant (aucune dépendance à une techno client comme JavaScript)
    Alors c'est contre javascript en général ou que pour les popup ?

    J'ai mes contrôles de formulaires en javascript, doublé dans le php au cas ou et surtout pour la cohérence des données par rapport à la base.

    J'ai mes tris de tableau en javascript sur positionnement de curseur en tête de colonne.

    J'ai de l'aide contextuelle, de l'affichage d'information à la demande.

    ???

  17. #17
    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
    Par défaut
    JavaScript peut être utilisé si cela apporte quelque chose. Dans le cas des popups, je suis d'avis qu'ils n'améliorent pas l'expérience utilisateur (au contraire) et qu'il faut donc les éviter. C'est mon argument majeur. Je n'aime pas les popups, je les trouve peu pratiques et je les évite tant que possible.

    À part qu'a priori ton site fonctionne rapidement, que ton public soit relativement ciblé et que tu aies moyen de protéger l'accès, le fait que tu sois en intranet ne signifie absolument rien. Cela n'impose absolument rien à l'ordinateur client. Il peut utiliser le navigateur qu'il veut. Imagine le gars qui arrive avec son ordi portable, éventuellement en spoofant une adresse physique d'un ordi du réseau...
    En gros, il faut considérer tous les gens qui visitent un site Web comme des internautes. Le navigateur n'est pas imposé, même si tu en es certain. Ne pars pas du principe que tes utilisateurs en resteront à ce que tu crois leur avoir imposé, car c'est le meilleur moyen pour te retrouver avec de jolies failles de sécurité ou même simplement avec un site qui ne fonctionne qu'à moitié.

    Donc pas de popups.

  18. #18
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Il y a 220 utilisateurs firefox dans cette boîte et 100% firefox depuis plus de 2 ans.

    Le site est inaccessible sans password sur un serveur ssh2

    Je n'angoisse pas sauf bien sûr les protection extérieur classique, mais côté user ça va.

    J'ai peut-être tort, mais changer une popup en page, c'est simplement retirer le java script puisque mes pages sont en html et php.

    Donc on verra à l'expérience.

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

Discussions similaires

  1. [PHP-JS] Forcer une saisie numérique
    Par Empty_body dans le forum Langage
    Réponses: 9
    Dernier message: 04/10/2011, 18h46
  2. [PHP-JS] Popup via PHP
    Par guy2004 dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2006, 10h41
  3. [PHP-JS] afficher des donnée php dans popup javascript
    Par speedylol dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/04/2006, 17h05
  4. [PHP-JS] Controle de saisie
    Par toitoine01 dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2006, 15h30
  5. [PHP-JS] Champs de saisie
    Par lechevin dans le forum Langage
    Réponses: 15
    Dernier message: 05/01/2006, 12h09

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