Bonjour,
Voici un nouveau casse-tête :
un administrateur peut créer un nouvel utilisateur. Pour cela il se rend à la page correspondante et remplit les champs du profil (nom, prénom, mail, adresse,...)
Je souhaiterai créer un script qui implémente automatiquement le champ "adresse" en fonction de la région du nouvel utilisateur : l'utilisateur choisit dans la liste déroulante la région du nouvel utilisateur, et hop, selon celle-là, on lui complète son champ adresse à partir de ce qui est enregistré dans la base de données (1 région <==> 1 adresse)
J'ai fait quelque chose d'un peu farfelu, il y a sans doutes plus simple et moins lourd mais bon, je suis parti comme ça.
En gros, je lance une requête SQL qui va compter le nombre de régions qu'il y a dans la BD. Ensuite je lance une boucle for jusqu'au nombre de régions et je crée un formulaire hidden qui va contenir la valeur de l'adresse correspondante. for i=1 ==> id_region=1 ==> adresse de la région 1 etc...
Si j'essaye d'afficher, ça fonctionne bien. Le problème vient dans l'appel de la fonction javascript où je ne sais pas trop comment faire vu que le nom de mes formulaires correspondent à la variable de la boucle for.
Voici la création de mes formulaires cachés.
if(isset($_GET['action']) && $_GET['action']=="new"){
//on compte le nombre de régions enregistrées
$req='SELECT COUNT(id_region) FROM region';
$reqquery=mysql_query($req);
$count = mysql_fetch_array($reqquery, MYSQL_ASSOC);
echo '<td><input type="hidden" name="nbregion" id="nbregion" value="'.$count['COUNT(id_region)'].'"></input></td>';
//on crée un formulaire hidden qui contient l'adresse de chaque région.
for ($i=0;$i<$count['COUNT(id_region)'];$i++)
{
$reqa='SELECT adresse FROM region WHERE id_region="'.$i.'"+1';
$reqquerya=mysql_query($reqa);
$resultat = mysql_fetch_row($reqquerya, MYSQL_ASSOC);
//echo $resultat['adresse'];
echo '<td><input type="hidden" name="'.$i.'" id="'.$i.'" value="'.$resultat['adresse'].'"></input></td>';
echo '</tr>';
}
}
Voici l'appel de ma fonction javascript.
Code : Tout sélectionner
<script type="text/javascript">
function modif_adresse(){
//on récupère l'id de la région qu'on a selectionné dans la liste déroulante
var idregion=document.getElementById("unite_co").value;
var nombre=document.getElementById("nbregion").value;
for (var i=0; var i < var nombre; var i++)
{
if (var idregion == var i)
{
document.formulaire.adresse.value=document.getElementById(var i).value;
}
}
}
</script>
En fait, je vois pas trop comment récupérer la valeur fournie dans le champ caché..