Récupération de la valeur d'un <SELECT> PHP et HTML

600BanditS Messages postés 6 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 20 août 2011 - 18 août 2011 à 19:55
600BanditS Messages postés 6 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 20 août 2011 - 20 août 2011 à 12:59
bonjour,

je voudrais pouvoir demander à mon utilisateur de saisir/sélectionner un nb_de_personne et ensuite afficher nb_de_personne INPUT correspondant pour saisir & enregistrer les nb_de_personne noms & prénoms.

Voilà le contexte........

Mes différentes idées:
(1)faire 2 formulaires:
=> nb-personnes + submit pour récup de la valeur
=> saisir les nb_personnes + submit
MAIS $_POST commmun aux 2 submit, donc pas bon!

(2) SELECT nb_personne avec onchange="fct_javascript"
MAIS comment ensuite renvoyer cette valeur de JS -> PHP?
OU comment faire l'équivalent PHP (récup nom/prénom + enreg dans la base) en JS?

Je ne sais pas si c'est vraiment clair, mais compliqué à expliquer...

Une idée?

merci.
@+
A voir également:

8 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
18 août 2011 à 20:04
Bonsoir

je pense qu'un javascript peut faire ça
en restant sur la même page

en utilisant onchange() sur le select
et innerHTML pour rajouter les champs
dans le form

Bonne programmation !
0
600BanditS Messages postés 6 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 20 août 2011
18 août 2011 à 20:34
oui j'avais bien commencé à bricoler ça:

<form method="post" name="nombre">
<select name="nbPersonnes" size="1" onchange="construireInput(this.options[this.selectedIndex].value)">
<option value="1" selected="selected">tout seul</option>
<option value="2">pour 2 personnes</option>
<option value="3">pour 3 personnes</option>
<option value="4">pour 4 personnes</option>
<option value="5">pour 5 personnes</option>
</select>
</form>

<script language="javascript" type="text/javascript">
function construireInput (nb)
{
var qry="";
//alert("FCT: "+nb);

for (i=0;i<nb;i++)
{
qry = "
";
document.write(qry);
}
}
</script>

ET il génère effectivement le nb d'INPUT correspondant
MAIS sur une autre page html(??)

DONC, innerHTML ok, mais je l'intègre où/comment?
merci.
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
18 août 2011 à 20:36
<script type="text/javascript">
function nbPersonne(){
  var newInput = document.getElementById('Picker').value;
  var frm='';
  var i=0;
  
  for(i=0;i<newInput;i++){ 
  frm +='Nom  Prénom 
';  
  }
  document.getElementById('formnew').innerHTML = frm;
}
</script>
<select id="Picker" onchange="JavaScript:nbPersonne()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>




Bonne programmation !
0
600BanditS Messages postés 6 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 20 août 2011
19 août 2011 à 11:08
salut!

ok, je vais tester ça
@+
0

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

Posez votre question
600BanditS Messages postés 6 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 20 août 2011
19 août 2011 à 16:27
ok c'est bon, maintenant la suite...
-> je voudrais juste encore rendre les 2 champs obligatoires
(ou au moins rendre oblig le prénom si nom saisi, et vice versa)
-> donc j'ai modifié comme ça

frm = '';
frm += '<form name="formulaire">';
for(i =0;i<newInput;i++)
{
frm += '
';
}
frm += '</form>';
frm + ='

';
document.getElementById('formnew').innerHTML = frm;

et la fct de vérif:

function verifNom()
{
if (document.formulaire.nom.value == "")
{
alert ('Veuillez entrer votre nom');
document.formulaire.nom.focus();
return false;
}
}


MAIS il ne rentre pas dans le IF, donc je suppose que c'est l'accès au contenu de NOM qui n'est pas bon...

à priori là c'est tout..... pour le moment!

merci.
0
600BanditS Messages postés 6 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 20 août 2011
19 août 2011 à 16:52
PRECISIONS UTILES:

ces données (SELECT + INPUT) ne sont que des data parmi d'autre dans un plus grand formulaire, qui sera soumis "à la fin" avec un seul SUBMIT.

donc impossible d'ajouter un bouton de validation pour cette aprie là, il faut que ce soit fait en sortie de champs, en temps réel!

précision utile je pense, parce que y a environ 12 000 exemple en ligne, MAIS qui s'appliquent à un bouton de validation, et non en sortie de champs, comme je le souhaite moi...
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
19 août 2011 à 21:55
d'aprés moi il serait mieux de séparer le form du php
je m'explique:

tu rajoutes des champs par javascript dans le formulaire html
tu précises obligatoire ... le form est posté sur une page
traitement.php
par <form action="traitement.php" method="post">...

traitement.php
<?php
//traitement.php
if(isset($_POST['nom']) && !empty($_POST['nom'])){
  
  foreach($_POST['nom'] as $k => $v){
    
    if(empty($v)){
    exit('Le nom est obligatoire [javascript:history.back(); retour]');
    }else{
    }
  }

}else{
}
//...
?>

Bonne programmation !
0
600BanditS Messages postés 6 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 20 août 2011
20 août 2011 à 12:59
en fait, en m'acharnant j'ai fini par trouver:

function nbPersonne()
{
var newInput = document.getElementById('Picker').value;
var frm='';
var i=0;

frm ='';
frm += '<form name="formulaire">';
for(i=0;i<newInput;i++)
{
frm +='
';
}
frm += '</form>';
frm +='

';
document.getElementById('formnew').innerHTML = frm;
}

function verifNom()
{
if (document.getElementById('reqN').value == "")
{
alert ('Veuillez entrer un nom !');
document.formulaire.nom.focus();
return false;
}
}

par contre le focus pour rester sur le champs ne marche pas lui!
0
Rejoignez-nous