Transfert de variables

Résolu
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010 - 2 janv. 2009 à 11:45
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010 - 5 janv. 2009 à 20:19
Bonjour a tous,
J'ai un formulaire avec plusieurs variables et je voudrais récupérer ces valeurs dans d'autres pages mais je n'y arrive pas.
Explications: page1-->mon formulaire avec les données
page1 envoie vers page2 et la page2 choisit après la page3 ou 4 ou 5, et je veut que les valeurs soient transmises dans les 3,4,5.
J'espère avoir été assez précis
merci de vos réponses

37 réponses

cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
2 janv. 2009 à 15:44
les text s'affichent bien avec les valeurs
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 janv. 2009 à 16:14
Tu dois avoir un pb dans la soumission du formulaire.
Si je prends le formulaire concerné (name='convention' action='choix_conventions2.php')

Les seules possibilités d'envoyer le formulaire sont :

pour appeller conventions2.php, c'est bien normal que ça ne fonctionne pas.

Dis moi tout

Kohntark -
0
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
2 janv. 2009 à 16:27
oui  il n'y a que qui ne fonctionne pas , car le reste

<input type='button' class='bout' value='Annuler'  onClick='gopage("convention.php")'
fonctionne bien.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 janv. 2009 à 16:39
Heu, je ne suis pas sur de bien te suivre là :

=> ouvre une fenêtre contenant choix_conventions2.php et passe la variable GET 'idetudiant' qui ici correspond à la valeur de $idetudiant.
=> il n'y a aucune données POST transmises !! le formulaire n'est pas envoyé !!
Si tu cliques sur ce bouton pour valider ton formulaire c'est normal que ça ne marche pas.

> il faut que ce soit un input type"submit" !! ou alors utiliser gopage() avec un type="button"

Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
2 janv. 2009 à 16:51
Quand je fait un input type="submit" avec window.open sa marche pas mais si je fait un gopage il y a les données qui sont affichées dans le array mais toujours erreur idclasse et location.
ps : je voulais ouvrir mon pdf dans une nouvelle fenetre donc avec window.open
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 janv. 2009 à 17:50
Re Jonas,

J'ai regardé d'un peu plus près ton code. Tu surcharges beaucoup pour ... RIEN
C'est très difficile de s'y retrouver là dedans !!

Ça par exemple :
unhtmlentities([...])
= > présent 59 fois !!
Il est sans aucun doute possible de s'en passer

ou les &nbsp;
=> présents 249 fois !!
Aucun pb pour tous (?) les virer

ou  répéter les echo alors que ce n'est pas nécessaire
... je m'arrête là mais il y en a encore un sacré paquet.

Tu dois pouvoir facilement passer de 470 lignes à une centaine

Sauf erreur de ma part il n'y a aucune donnée entrée dans ce formulaire, il n'y a que des hidden, alors :
=> suppression du (et même des) formulaires
=> définition des variables de SESSION à la place

.. il ne reste plus qu'à faire un window.open sur le bouton qui va bien.
=> plus rapide, plus simple, plus sécurisé, etc ..., etc ...

Bon, je te dit tout de même comment ouvrir dans une nouvelle fenêtre, mais de grâce, n'en fait rien !!

Tu crées une fonction JS du style :

function mauvaise_idee (id) {
  window.open('', 'ceciestunemauvaiseidee','width=800,height=600');
  document.getElementById(id).target = 'ceciestunemauvaiseidee';
}

et, pour le formulaire :
<form method="post" action="page2.php" id="faispasca" onsubmit="mauvaise_idee('faispasca');">

Bon courage,

Kohntark -
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 janv. 2009 à 17:50
Re Jonas,

J'ai regardé d'un peu plus près ton code. Tu surcharges beaucoup pour ... RIEN
C'est très difficile de s'y retrouver là dedans !!

Ça par exemple :
unhtmlentities([...])
= > présent 59 fois !!
Il est sans aucun doute possible de s'en passer

ou les &nbsp;
=> présents 249 fois !!
Aucun pb pour tous (?) les virer

ou  répéter les echo alors que ce n'est pas nécessaire
... je m'arrête là mais il y en a encore un sacré paquet.

Tu dois pouvoir facilement passer de 470 lignes à une centaine

Sauf erreur de ma part il n'y a aucune donnée entrée dans ce formulaire, il n'y a que des hidden, alors :
=> suppression du (et même des) formulaires
=> définition des variables de SESSION à la place

.. il ne reste plus qu'à faire un window.open sur le bouton qui va bien.
=> plus rapide, plus simple, plus sécurisé, etc ..., etc ...

Bon, je te dit tout de même comment ouvrir dans une nouvelle fenêtre, mais de grâce, n'en fait rien !!

Tu crées une fonction JS du style :

function mauvaise_idee (id) {
  window.open('', 'ceciestunemauvaiseidee','width=800,height=600');
  document.getElementById(id).target = 'ceciestunemauvaiseidee';
}

et, pour le formulaire :
<form method="post" action="page2.php" id="faispasca" onsubmit="mauvaise_idee('faispasca');">

Bon courage,

Kohntark -
0
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
2 janv. 2009 à 17:51
J'ai réussi a mettre toutes les valeurs dans le pdf. Tout est OK, mais le problème est que lorsque je veut mettre le pdf dans une autre fenetre je n'ai plus aucunes données dans le pdf.
echo "

Merci pour votre aide [../auteur/KOHNTARK/302665.aspx kohntark.]
0
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
3 janv. 2009 à 11:42
La fonction mauvaise_idee(id) ne fonctionne pas. Elle m'ouvre une nouvelle fenetre mais elle est vide.([about:blank about:blank]).
J'ai vraiement besoin d'une petite aide.SVP
Jonas03
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
3 janv. 2009 à 12:08
Sauf erreur de ma part il n'y a aucune donnée entrée dans ce formulaire, il n'y a que des hidden, alors :
=> suppression du (et même des) formulaires
=> définition des variables de SESSION à la place

.. il ne reste plus qu'à faire un window.open sur le bouton qui va bien.
=> plus rapide, plus simple, plus sécurisé, etc ..., etc ...



Il y a quoi qui ne te plais pas dans cette solution ? J'aimerai savoir.

Concernant la mauvaise idée je viens de re tester, ça marche très bien (IE et FF)

Cordialement,

Kohntark -
0
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
3 janv. 2009 à 12:19
J'ai mis des sessions et sa marche quand je fait un gopage mais si je fait un window.open les données sont plus présentes. J'ai fait comme sa :
$_SESSION['prenom_etudiant'] = $_POST['prenom_etudiant'];
 $_SESSION['nom_detudiant'] = $_POST['nom_detudiant']; dans la page2.php
et dans la page3.php j'ai mis sa :
$pdf->Text(112.13,188.35,($_SESSION['nom_etudiant'])." ".($_SESSION['prenom_etudiant']));

L'erreur doit etre ici (je pense):
        echo "

<form name='convention' method='post' action='choix_conventions2.php' onSubmit='mauvaise_idee('faispasca')'>";
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
3 janv. 2009 à 13:17
Je me suis peut être mal exprimé, alors je recommence :
(je n'ai pas re re re regardé de près le code, alors corrige moi si je dis une bêtise)

dans page1.php :
- tu as 3 formulaires qui ne contiennent aucune données que tu ne connaisses pas déjà : elles sont toutes issues de ta DB via une requête sur 2 variables postées.
Me viens donc cette réflexion : a quoi sert un formulaire qui ne contient que des hidden ?
... et la réponse => A RIEN, sinon à compliquer le script et ralentir l'exécution

Partant de là, les 3 form peuvent être supprimé, ainsi que les 54 hidden.

A la place :
tu mets ça :
$_POST['idconvention']
ou ça :
$_POST['choix_id']

dans $_SESSION['idconvention']

Ensuite le bouton pour afficher le pdf :

et c'est tout pour la page 1

choix_conventions2.php :
tu exécutes la requête SQL qui te permet de récupérer tes données et ainsi identifier le pdf à afficher en te basant sur $_SESSION['idconvention']
Tu rediriges vers la page qui génère le pdf.
Dans celle ci tu utilises les vars de session pour définir tes données.

OU

(... et c'est la meilleure méthode)

Tu set directement les variables de session dans page 1 (tjs en virant les formulaires)
Tu gardes la même méthode pour le bouton, sauf que tu le fais pointer directement sur la page de création pdf (que tu auras bien sur définie)

C'est là un principe avec en exemple la génération du pdf, mais qui reste applicable à tous tes formulaires / boutons.

Kohntark -
0
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
3 janv. 2009 à 14:15
MERCI. sa marche très bien.J'ai fait comme vous m'avez dit :
-J'ai supprimé les formulaires et les hidden
-J'ai mis directement les variables de session dans la page1 et j' appel la convention.

J'ai un autre soucis mais completement different, et je n'arrive pas non plus a y résoudre (jsuis vraiment un noob).
Dans un page connexion, j'ai :

function nouvel_id($table)
    {   
        $id='id'.$table.'';
       
               
        $identif=$this->requete("select ".$id." from ".$table." order by ".$id." desc limit 1");
                if($this->nb_ligne($identif)==0)
                    $identifiant=1;
            else{
                $res_identif=$this->extraction_tab_numerique($identif);
                $identifiant=$res_identif[0]+1;
                }
           
        return $identifiant;

Dans la page param_classe, j'ai :
$id_periode1=$conn->nouvel_id();

Je sais que l'erreur est que je n'ai pas d'argument dans nouvel_id mais j'en ai pas besoin car sa fonctionne bien.Ya juste des erreurs mais tout fonctionne.

les erreurs :
Warning: Missing argument 1 for CONNEXIONBDD::nouvel_id(), called in param_classe.php and defined inconnexion.php on line 90

Notice: Undefined variable: table

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource inconnexion.php on line 79
Erreur de syntaxe près de 'order by id desc limit 1' à la ligne 1

MERCI encore Kohntark
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
3 janv. 2009 à 14:51
MERCI. sa marche très bien.J'ai fait comme vous m'avez dit :
-J'ai supprimé les formulaires et les hidden
-J'ai mis directement les variables de session dans la page1 et j' appel la convention.


= > en voilà une bonne chose !!

mais j'en ai pas besoin car sa fonctionne bien
=> si tu n'en as pas besoin pourquoi y faire appel dans
param_classe.php
?? Vire le !!

MERCI encore Kohntark
=> merci à toi, ça fait toujours plaisir d'en recevoir un quand on a passé du temps à aider

Kohntark -
0
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
3 janv. 2009 à 15:11
En fait,
 $id_periode1=$conn->nouvel_id(sa marche quand je mets rien ici mais il m'affiche des erreurs quand même);

 et si j'enlève ce qu'il y a dans la parenthèse dans connexion.php, il me met plus l'erreur :

Warning: Missing argument 1 for CONNEXIONBDD::nouvel_id(), called in param_classe.php and defined in connexion.php on line 90

mais les autres restent.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
3 janv. 2009 à 15:33
Je n'ai pas ton code donc je ne peux t'aider, mais :

Soit tu as besoin de $conn->nouvel_id(
), dans ce cas il faut impérativement renseigner l'argument pour que la requête aboutisse.

Si il y a encore des erreurs une fois que tu as viré ça, soit :
    - elles sont directement liées à $id_periode1
ou a des variables des cette fonction => toutes les virer
    - elles viennent d'ailleurs => chercher, grâce au message d'erreur, d'où elles proviennent

Cordialement,

Kohntark -
0
cs_jonas03 Messages postés 52 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 7 mars 2010
3 janv. 2009 à 16:31
        $date_debut1=date_frtoan($_POST['date_debut1']);
        $date_fin1=date_frtoan($_POST['date_fin1']);
        $id_prof_resp1=$_POST['id_prof_resp1'];
        $id_classe=$_POST['idclasse'];
        
        //ces variables ne sont pas obligatoirement remplies
        $date_debut2=$_POST['date_debut2'];
        $date_fin2=$_POST['date_fin2'];              
        $date_debut3=$_POST['date_debut3'];
        $date_fin3=$_POST['date_fin3'];
        
        $id_prof_resp2=$_POST['id_prof_resp2'];   
        $id_prof_resp3=$_POST['id_prof_resp3'];
          
        $nb_periode=$_POST['nbperiode'];
        $idpp1=$_POST['idpp1'];
        $idpp2=$_POST['idpp2'];
        $idpp3=$_POST['idpp3'];
        
        $rep1=$conn->requete("delete from periode_prevu where idclasse='$id_classe'");
        $rep_pp1=$conn->requete("delete from periode where idperiode_prevu='$idpp1'"); 
        echo"$idpp1";
        if($nb_periode>1)
        {
        $rep_pp2=$conn->requete("delete from periode_prevu where idperiode_prevu='$idpp2'");
            if($nb_periode>2)
            {
            $rep_pp3=$conn->requete("delete from periode_prevu where idperiode_prevu='$idpp3'");
            }
        }
        
        $rep_gpr=$conn->requete("delete from groupe_professeur_responsable where idclasse='$id_classe'");
        //toutes les anciennes occurences sont supprim&eacute;es, on va les recr&eacute;es
        
        $id_periode1=$conn->nouvel_id();Sa marche pas

           $rep_pp1i=$conn->requete("insert into periode_prevu values ('$id_periode1','$date_debut1','$date_fin1')");
        $rep_ppc1i=$conn->requete("insert into periode_prevu_par_classe values ('$id_periode1','$id_classe')");
        $rep_gpri=$conn->requete("insert into groupe_professeur_responsable values ('$id_prof_resp1','$id_classe')");
        
        if($date_debut2!="" && $date_fin2!="")
        {
        $date_debut2=date_frtoan($date_debut2);
        $date_fin2=date_frtoan($date_fin2);
        $id_periode2=$conn->nouvel_id(); Ici c'est pareil mais sa marche bien. Aucun problème
        $rep_pp2i=$conn->requete("insert into periode_prevu values ('$id_periode2','$date_debut2','$date_fin2')");
        $rep_ppc2i=$conn->requete("insert into periode_prevu_par_classe values ('$id_periode2','$id_classe')");
Si j'enlève

$id_periode1=$conn->nouvel_id() il peut pas executer la requete après.Et si je rajoute l'argument il me met toujours l'erreur disant non definie et aussi l'erreur 




mysql_num_rows()
0
Rejoignez-nous