Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 11h53   #1
Nouveau Membre du Club
 
Femme
Inscription : janvier 2010
Messages : 78
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2010
Messages : 78
Points : 25
Points : 25
Par défaut Problème de réccupération de valeur depuis un formulaire

Exposé de mon problème :
J'ai un formulaire où je sélectionne dans une liste l'adresse mail à laquelle je souhaite envoyer un message. Cette adresse mail est récupérée dans ma SGBD ainsi que le login du propriétaire de cette adresse mail.

Mon problème est que je n'arrive pas à récupérer ce login ($log). Il me donne le dernier login de ma liste. J'ai essayé avec isset($_POST['destinat']), ça ne fonctionne pas.

ça semble facile mais je suis depuis plus de 2 jours sur le problème et je ne comprends pas.

Vous êtes ma dernière solution.

Code :
1
2
3
4
 
$Adest=$_POST['Adest'];
$message=$_POST['message'];
$dest=$_POST['destinat'];
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
</br></br>
<form method="POST" action="#">

	<label id="mail">Expéditeur :  <font color="#FF9900"><?php echo $mailExp[0]['mail'];?></font></label></br></br>
	
	<a href="#" id="pop" onclick="pop()"><i><b><font color="blue">Destinataire* : </font></b></i></a>
	<select name="destinat" id="iddest" >
				<option value='vide'>Choix</option>
					<?php
					for($i=0;$i<count($mailDest);$i++)
					{
					?>
					<option value="<?php echo $mailDest[$i]['mail'];?>" <?php if($mailDest[$i]['mail']!='Choix'){$log=$mailDest[$i]['login'];} ?> ><?php echo $mailDest[$i]['mail'];?></option><?php
					}
					?>
	</select>
	<label id="mail"><u>Autre Destinataire (adresse exacte) :  </u></label><input type="text" name="Adest" id="Adest" onfocus="document.getElementById('Adest').value=<?php echo $_POST['Adest'];?>"><?php echo $_POST['Adest'];?></input><font color="#FF9900">@xxx.fr</font></br></br>			
	</br>
	</br>
	<label id="messmail">Message : </label>
	
	<textarea id="message" name="message" rows="4" cols="100" onfocus="document.getElementById('message').value=<?php echo htmlspecialchars($_POST['message']);?>"><?php if(isset($_POST['message'])){echo htmlspecialchars($_POST['message']);};?></textarea>
	
</form>
<form>
	<input type="button" name="mails" value="Envoyer" onclick="envoimail('<?php echo $mailExp[0]['mail'];?>',document.getElementById('iddest').value,document.getElementById('Adest').value,document.getElementById('message').value,'<?php echo $log;?>')"/>
</form>	


<form method="post" name="FormMail" action="impayes.php?action=envoimail" >
				<input type="hidden" name="exp" id="exp" value="" />
				<input type="hidden" name="dest" id="todest" value="" />
				<input type="hidden" name="mess" id="mess" value="" />
				<input type="hidden" name="domaine" id="domaine" value="<?php echo $domaine;?>" />
				<input type="hidden" name="choix" id="choix" value="numcli" />
				<input type="hidden" name="numclt" id="numclt" value="<?php echo $donnees1[0]['07_refclient'];?>" />
				<input type="hidden" name="aff" id="affaire" value="<?php echo $donnees1[0]['iep_numaff'];?>" />
				<input type="hidden" name="logmail" id="logmail" value="<?php echo $log;?>" />
				<input type="hidden" name="territoire" id="territoire" value="<?php echo $territoire;?>" />
				
</form>
naroco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 13h22   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Pour commencer voici une façon plus élégante de décrire ton select:
Code :
1
2
3
4
5
6
7
<select name="destinat" id="iddest">
    <option>Choix</option>
    <?php foreach ($mailDest as $m): ?>
        <option value="<?=$m['mail']?>"><?=$m['mail']?></option>
        <?php if ($m['mail'] != 'Choix') $log = $m['login'] ?>
    <?php endforeach ?>
</select>
Log te donnera forcément le dernier login de ta liste puisque sa valeur est écrasée à chaque itération. Ce que tu peux faire c'est le joindre à la valeur de l'option pour réccupérer le login du même coup, ce qui donne:
Code :
1
2
3
4
5
6
<select name="destinat" id="iddest">
    <option>Choix</option>
    <?php foreach ($mailDest as $m): ?>
        <option value="<?=$m['mail']?>:<?=$m['login']?>"><?=$m['mail']?></option>
    <?php endforeach ?>
</select>
Coté PHP:
Code :
list($aDest,$log) = explode(':', $_POST['destinat']) + array('');
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 11h36   #3
Nouveau Membre du Club
 
Femme
Inscription : janvier 2010
Messages : 78
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2010
Messages : 78
Points : 25
Points : 25
Par défaut merci benjamin

ça marche, super
naroco est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h08.


 
 
 
 
Partenaires

Hébergement Web