Bon, mon truc fonctionne avec le type "radio" : en gros, je dis que si dans le formulaire de remplissage de la région, l'id correspondant est X, alors tu changes l'adresse perso déjà écrite et tu la remplace par "
[email protected]".
Mais, je galère un peu pour faire de même avec la "checkbox" :
Voici pour le moment ma version "checkbox" non fonctionnelle :
le formulaire de remplissage des données :
-On sélectionne la région: liste déroulante avec les 9 régions possibles
<td style="text-align: right;"><label style="font-weight: bold;" for="unite_co">Région</label></td>
<td>
<?php
//On charge la région utilisée dans l'affaire
if(isset($_SESSION['session_unite_co'])){
addSelectRegion("region_unite_co", $_SESSION['session_unite_co'],true, false, "", 300,1);
}
//Sinon on prend celle de l'auteur
else{
if($rowAuteur['nom_region'] == "National"){
if($_SESSION['session_region_etude']){
$varregion = $_SESSION['session_region_etude'];
}
else{
$varregion = 1;
}
}
else $varregion = $rowAuteur['id_region'];
addSelectRegion("region_unite_co", $varregion,true, false, "", 300,1);
}
?>
<span class="champ_obligatoire">*</span></td>
Si besoin est, voici la création de la fonction addSelectRegion :
function addSelectRegion($id, $selected,$afficheNational=true, $afficheToutes=true,$onchange="",$size=0,$mode=0,$disabled=false){
if($disabled)
$dis = "disabled";
else
$dis = "";
//Définition de la taille
if($size==0)
$attsize = "";
elseif(is_numeric($size))
$attsize = "style='width:".$size."px;'";
//Affichage ou non de l'événement Javascript
$varonchange = "";
if($onchange != "")
$varonchange = 'onchange="'.$onchange.'"';
//Affichage de la balise
echo '<select '.$dis.' '.$attsize.' name="'.$id.'" id="'.$id.'" '.$varonchange.'>';
$req_region = 'SELECT id_region, nom_region FROM region ORDER BY nom_region';
$result_region = mysql_query($req_region) or die('Requête invalide : ' . mysql_error() . "\n" . 'Requête complète : ' . $req_region);
$padding="";
if($afficheToutes){
if(isset($selected) && $selected == "all")$select="selected='selected'"; else $select="";
echo '<option '.$select.' style="font-weight: bold;" value="all">Toutes les régions</option>
';
$padding = 'style="padding-left: 25px;"';
}
// Création d'une ligne par région trouvée dans la liste déroulante
// On lit une par une les lignes issues de la requête
while ($row_region = mysql_fetch_array($result_region, MYSQL_ASSOC)) {
if($row_region['nom_region'] != "National" || $afficheNational){
switch($mode){
case 0 : $value = $row_region['nom_region']; break;
case 1 : $value = $row_region['id_region']; break;
default : $value = $row_region['nom_region']; break;
}
// On pré-sélectionne la région choisie dans la page vespa.php
// On récupère l'adresse correspondante pour l'affichée dans le champ suivant
if(isset($selected) && ($row_region['nom_region'] == $selected) || ($row_region['id_region'] == $selected)){
echo '<option '.$padding.' value="' . $value . '" selected="selected">' . $row_region['nom_region'] . '</option>
';
}
// sinon on la rentre simplement dans la liste déroulante
else{
echo '<option '.$padding.' value="' . $value . '">' . $row_region['nom_region'] . '</option>
';
}
}
}
echo "</select>";
mysql_free_result($result_region);
unset($row_region);
}
-Le formulaire de l'adresse email + le bouton checkbox
<td style="text-align: right;"><label for="inter_mail">E-Mail</label></td>
<td><input type="text" name="inter_mail" id="inter_mail" size="45" onKeyUp="javascript:couleur(this);" <?php if(isset($_SESSION['session_inter_mail'])){echo ' value = "' . $_SESSION['session_inter_mail'] . '" ';} ?> /><span class="champ_obligatoire">*</span></td>
<td><input type="checkbox" name="adr_generique" value="generique" id="generique" onClick="modif_email();"/> <label for="generique">Adresse régionale</label></td>
-Ma fonction JavaScript
function modif_email()
{
const var email_perso=document.getElementById("inter_mail").value;
//alert(email_perso);
if (document.getElementById("generique").checked)
{
var toto=document.getElementById("region_unite_co").value;
var email_interlocuteur=document.getElementById("inter_mail").value;
if (toto=='1')//Grand Centre
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='2')//Île-de-France
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='3')//Méditerranée
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='4')//Ouest
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='5')//Rhône-Alpes Auvergne
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='6')//Sud Ouest
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='7')//Nord Ouest
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='8')//Est
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
if (toto=='9')//National
{
email_interlocuteur="[email protected]";
document.formulaire.inter_mail.value="[email protected]";
}
}
else
{
document.formulaire.inter_mail.value=email_perso;
}
}
Je pensais (vraisemblablement à tort puisque ca ne m'affiche rien) qu'en utilisant un "const var" sur l'adresse mail, je récupèrerai de manière fixée l'adresse perso de l'utilisateur.
En gros, mon problème, il est dans le retour vers l'adresse perso..