Bonjour,
Voila je voudrais lier deux variables ayant des valeurs differentes à un bouton radio, coment puis-je faire? merci.
Version imprimable
Bonjour,
Voila je voudrais lier deux variables ayant des valeurs differentes à un bouton radio, coment puis-je faire? merci.
Tu ne peux pas car ça n'a pas d'intérêt. Réfléchi un peu et tu va voir que tu peux t'en passer.
peut être que ca n'a pas d'interet mais dans mon probleme ca peut être utile, car je voudrais afficher deux valeurs differente à des endroit opposés dans ma page, si le bouton radio est sélectionné en gros ca m'affiche une entete et un pied de page, en sachant que ces valeurs changes grace à leur variable, voila le truc, merci. OUi mais ce n'est pas le meme probleme je voulais pas le mettre dans le meme post, désolé.
Je retire ce que j'ai dit si ce n'est pas le meme post, ca semblait très semblable.
Dans ce cas je n'ai pas compris quel était ton probleme pourrais essayer d'expliquer différemment s'il te plait?
alors j'ai un bouton radio qui s'appel A
quand ce bouton A est sélectionné ca envoi une valeur dans une variable X (l'entete) et envoi aussi une autre valeur dans une autre variable appelé Y(pied de page)
car je dois choisir un bon ( livraison et reprise) suivant un bouton radio et donc je dois afficher le titre et un pied de page correspondant au bon choisie, je me suis dit que le plus simple c'est d'affecter deux variable à un bouton radio, mais je ne vois pas comment faire.
Ben il "suffit" de définir ton entête en fonction de la valeur de ton bouton radio, idem pour ton pied de page. Je ne vois pas pourquoi tu voudrais associer les deux valeurs au bouton radio au lieu de faire (pour l'entete et le pied de page)
et idem dans le pied de page.Code:
1
2
3
4 if( $_POST['A'] == "livraison") $entete = "entete de livraison"; else $entete = "entete de commande";
merci pour ta réponse, alors soit je ne sais pas ou mettre ton code, soit il y a une erreur car il me dit que je n'ai rien indiqué à la variable entete, aussi mes variables sont stockées dans une base de donnée
Donnes moi un peu de code pour t'aider parce que là j'ai vraiment du mal à te suivre :aie:
j'ai inserer ton code dans ma page formulaire en mettant les balise php
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <p id="contrat"><label>Contrat : </label> <input type="radio" name="contrat" value="Contrat de livraison" CHECKED />Contrat de livraison <input type="radio" name="contrat" value="Contrat de reprise" />Contrat de reprise <p id="contrat"><label>Facture : </label> <input type="radio" name="contrat" value="Facture" />Facture <input type="radio" name="contrat" value="Avoir sur" />Avoir <?php if( $_POST['contrat'] == "Contrat de livraison") $contrat1 = "entete de livraison; else $contrat1 = "entete de commande"; ?>
Je suis désolé mais je n'arrive pas bien à comprendre ton code, tes 4 boutons radios ont le meme noms alors qu'ils semblent être séparés en deux groupes, donc on ne peut sélectionner qu'un seul des deux.
Ensuite, tu utilises le $_POST[] juste en dessous, alors que $_POST[] n'a de sens que lorsque tu es dans un formulaire et que tu as appuyé sur un bouton submit (ou un équivalent).
Je n'arrive pas du tout à comprendre ce que tu veux faire.
oui tas raison j'ai pas mis le bon code:
fichier formulaire
fichier traitementCode:
1
2
3
4
5
6
7
8
9
10 <p id="civilite"><label>Contrat : </label> <input type="checkbox" name="contrat0" value="Contrat de livraison" CHECKED />Contrat de livraison <input type="radio" name="contrat0" value="Contrat de reprise" />Contrat de reprise <p id="civilite"><label>Facture : </label> <input type="radio" name="contrat1" value="Facture" />Facture <input type="radio" name="contrat1" value="Avoir sur" />Avoir
Code:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 <?php session_start(); include('connection.inc.php'); //Crealog 2007 $interets = $_POST['interets']; $sqlinterets = ''; for ($i=0; $i<count($interets); $i++) { $sqlinterets .= $interets[$i]; $sqlinterets .= ' '; } $options = $_POST['options']; $sqloptions = ''; for ($i=0; $i<count($options); $i++) { $sqloptions .= $options[$i]; $sqloptions .= ' '; } $ref = $_POST['ref']; $sqlref = ''; for ($i=0; $i<count($ref); $i++) { $sqlref .= $ref[$i]; $sqlref .= ' '; } $ref1 = $_POST['ref1']; $sqlref1 = ''; for ($i=0; $i<count($ref1); $i++) { $sqlref1 .= $ref1[$i]; $sqlref1 .= ' '; } if( $_POST['contrat'] == "Contrat de livraison") $contrat2 = "entete de livraison"; else $contrat2 = "entete de commande"; $query = "INSERT INTO contact (idcontact,adress_client,adress_chantier,codepostal_client,codepostal_chantier,civilite,civilite_chantier,tel_client,tel_chantier,fax_client,fax_chantier,interlocuteur_client,interlocuteur_chantier,societe,zone,num_cmd,num_chantier,num_serie,num_contrat,contrat,contrat1,debut_loc,fin_loc,date,interets,options,conduc,fuel_d,fuel_r,prix,prix1,prix2,prix3,prix4,prix5,prix6,prix7,prix8,prix9,prix10,prix11,prix12,qte,qte1,qte2,qte3,qte4,qte5,qte6,qte7,qte8,qte9,qte10,qte11,qte12,ref,ref1,remise,h_loc,idx_contrat) VALUES('','".$_POST['adress_client']."','".$_POST['adress_chantier']."','".$_POST['codepostal_client']."','".$_POST['codepostal_chantier']."','".$_POST['civilite']."','".$_POST['civilite_chantier']."','".$_POST['tel_client']."','".$_POST['tel_chantier']."','".$_POST['fax_client']."','".$_POST['fax_chantier']."','".$_POST['interlocuteur_client']."','".$_POST['interlocuteur_chantier']."','".$_POST['societe']."','".$_POST['zone']."','".$_POST['num_cmd']."','".$_POST['num_chantier']."','".$_POST['num_serie']."','".$_POST['num_contrat']."','".$_POST['contrat']."','".$_POST['contrat1']."','".$_POST['debut_loc']."','".$_POST['fin_loc']."','".$_POST['date']."','".$sqlinterets."','".$sqloptions."','".$_POST['conduc']."','".$_POST['fuel_d']."','".$_POST['fuel_r']."','".$_POST['prix']."','".$_POST['prix1']."','".$_POST['prix2']."','".$_POST['prix3']."','".$_POST['prix4']."','".$_POST['prix5']."','".$_POST['prix6']."','".$_POST['prix7']."','".$_POST['prix8']."','".$_POST['prix9']."','".$_POST['prix10']."','".$_POST['prix11']."','".$_POST['prix12']."','".$_POST['qte']."','".$_POST['qte1']."','".$_POST['qte2']."','".$_POST['qte3']."','".$_POST['qte4']."','".$_POST['qte5']."','".$_POST['qte6']."','".$_POST['qte7']."','".$_POST['qte8']."','".$_POST['qte9']."','".$_POST['qte10']."','".$_POST['qte11']."','".$_POST['qte12']."','".$sqlref."','".$sqlref1."','".$_POST['remise']."','".$_POST['h_loc']."','".$_POST['idx_contrat']."')"; $result = mysql_query($query) OR die ('Erreur SQL !<br>'.mysql_error()); $sql="SELECT idcontact FROM contact WHERE idx_contrat = '".$_POST['idx_contrat']."'"; $soluce = mysql_query($sql); $row = mysql_fetch_array($soluce); $_SESSION['idcontact'] = $row['idcontact']; header('location: pdf.php'); ?>
tu définis l'entete dans la variable $contrat2
or ensuite tu rediriges avec le header vers le fichier PDF.php qui lui ne connait pas cette variable $contrat2 d'où l'erreur, pourquoi ne crées tu pas le pdf directement dans traitement.php?
Sinon passes la variable $contrat2 en paramètre de l'url...
j'ai redefini contrat2, mais il y a toujours un probleme, mais que veux tu dire en disant: "Sinon passes la variable $contrat2 en paramètre de l'url..." aussi autre question si j'arrive pas comme ca, est il possible de cocher une checkbox directement avec un bouton radio?
On ne se comprend pas du tout je crois :aie:
Tu as trois étapes !
1/ la page avec ton formulaire qui contient des boutons radios.
2/ la page traitement qui recoit le formulaire posté et donc les valeurs choisies dans les boutons radios.
A ce niveau, tu décides de la valeur de ton header dans $contrat2 apparemment
3/ le script PDF.php qui lui va te créer ton pdf. Lui ne recoit pas de formulaire et il n'a aucune idée de qui est la variable $contrat2.
3 solutions :
1/ tu passes soit la valeur du bouton radio soit directement $contrat2 dans l'url, dans le style
Mais ca pose problème avec les espaces, caractères spéciaux etc (faut utiliser urlencode je crois)Code:header("Location: PDF.php?contrat2=contratdelivraison");
Dans ce cas, dans PDF.php tu récupères l'entête dans $_GET['contrat2'] (et tu utilises urldecode() dans ce cas).Code:header("Location: PDF.php?contrat2=" . urlencode($contrat2));
2/ Tu utilises le code de PDF.php dans traitement.php au lieu de "rediriger" donc tu fais des fonctions qui créent ton pdf et tu les appelles dans traitement.php qui lui connait toutes les valeurs du formulaire
3/ tu définis un nouveau formulaire dans traitement.php qui va contenir l'entête le pied de page etc et tu postes ce formulaire directement (en javascript)
y a surement d'autres solutions mais c'est deja ca.
Et j'ai une préférence pour la solution 2.
merci pour tes réponses entierement suffisante mais je vais encore t'embeter, car la varaible contrat2 ne se trouve pas dans pdf.php mais dans un autre fichier invoice.php que j'appel avec la fonction global alors t'as deuxieme réponse pourrait marcher dans ce cas?
fichier invoice.php
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ... //Pied de page function footer() { global $contrat2; //Positionnement à 2 cm du bas $this->SetY(-20); //Police Arial italique 4 $this->SetFont('Arial','I',6); //signature $this->Cell(0,10,$contrat2, 0,0,'C'); }
Cette méthode du global ne marchera que si footer.php est inclus dans invoice.php.