Bonjour,
Voici ma question dans le contexte :
Je dispose d'un tableau contenant 20 lignes similaires : (avec id="ex1" jusqu'à "ex20".
<tr id="ex1" style="background-color:#FFC7C1; display:none;">
<td style="padding-left:10px;">Badge Exposant 1<input id="coche1" name="checkbox[]" value="1" type="checkbox" style="display:none;"/></td>
<td rowspan="2">
<input name="civilite" type="radio" value="mr">Mr<br>
<input name="civilite" type="radio" value="mme">Mme<br>
<input name="civilite" type="radio" value="mlle">Mlle
</td>
<td rowspan="2" style="text-align:right">
<span class="erreur">*</span> Nom :
<input name="nom" type="text" class="input1" id="nom" value="<? echo_if("nom"); ?>" size="25" onChange="javascript:this.value=this.value.toUpperCase();"><br>
<span class="erreur">*</span> Prénom :
<input name="prenom" type="text" class="input1" id="prenom" value="<? echo_if("prenom"); ?>" size="25" onChange="javascript:changeCase(this.form.prenom)"><br>
<span class="erreur">*</span> Email :
<input name="email" type="text" class="input1" id="email" value="<? echo_if("email"); ?>" size="25" onChange="javascript:this.value=this.value.toLowerCase();">
</td>
<td width="25" rowspan="2">
</td>
<td rowspan="2" style="vertical-align:middle; text-align:right;">
<span class="erreur">*</span> Société :
<input name="societe" type="text" class="input1" id="societe" value="<? echo_if("societe"); ?>" size="25" onChange="javascript:this.value=this.value.toUpperCase();"><br /><br />
<span class="erreur">*</span> Fonction :
<select name="profession" id="profession" style="width:190px;">
<?php
# // requête sql
mysql_query("SET NAMES 'utf8'");
$sql = "SELECT * FROM profession;";
?>
<option value="0">Choisissez une fonction</option>
<?php
# // on sélectionne toutes les entrées de la table
$req=mysql_query("SET NAMES, 'utf8'");
$req=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
# //On affiche ces entrées
while($data = mysql_fetch_assoc($req))
{
print '<option value='.$data['profession'].'>'.$data['profession'].'</option>';
if ($profession==$data['profession']){
print '<option value='.$data['profession'].' selected="selected" >'.$data['profession'].'</option>';
}
}
?>
</select><br>
</td>
<td width="25" rowspan="2">
</td>
</tr>
<tr id="exp1" style="background-color:#FFC7C1; display:none;">
<td style="padding-left:10px;"><div id="aj2">
<input value="+" type="button" name="ajouter" onclick="Ajoutligne(2)"> <input value="-" type="button" name="ajouter19" onclick="Cacheligne(1)" />
</div></td>
</tr>
Sur chaque ligne, je dispose de 2 boutons, "+" qui me permettent d'ajouter une nouvelle ligne dessous (ajouter un nouveau badge) ou "-" pour supprimer la ligne en cours. Lorsque ma ligne est affichée (display=""), le checkbox qu'elle contient se check et lorqu'elle est cachée (display="none")se décoche. Tout ça marche impec.
Lors de mon traitement php, je voudrais récupérer les lignes où la checkbox est checkée (censées être les lignes renseignées).
J'ai tenté un truc du genre :
//On boucle sur le nombre de checkbox existante
for ($i = 0; $i < count($_POST["checkbox"]); $i++){
//on test si on recup tous les champs du form
if(isset($_POST['civilite'][$i]) && isset($_POST['nom'][$i]) && isset($_POST['prenom'][$i]) && isset($_POST['email'][$i]) && isset($_POST['societe'][$i]) && isset($_POST['fonction'][$i])){
// ON PASSE LES VAR DU POST EN VAR
extract($_POST,EXTR_OVERWRITE);
// test si champ vide
if(empty($civilite.$i) or empty($nom.$i) or empty($prenom.$i) or empty($email.$i) or empty($societe.$i)) {
$err.="Tous les champs obligatoires ne sont pas remplis </br>";
}
...
Mes questions sont :
Comment concaténer mon i dans la variable $_POST['civilite'][$i] (ce que j'ai a l'air de passé)?
Comment récupérer le nom de ma variable obtenu après que le extract($_POST,EXTR_OVERWRITE); ait transformer le nom de variable en $civilite+$i pour empty($civilite.$i)(cette concaténation m'affiche une erreur)
J'espère avoir été assez claire dans mon explication. Dans le cas contraire, n'hésitez pas à me questionner.
Merci pour vos réponses