par
Neomcdn » 09 août 2011, 10:50
Bonjour,
J'ai un site hébergé sur un Plesk chez Amen qui me pose problème.
En effet, j'utilise sur une administration un formulaire avec des checkbox. Elle fonctionne très bien en local mais pas en ligne et je ne parviens pas à savoir pourquoi.
Pour un produit, on peut lui affecter plusieurs critères (via checkbox). Je récupère ensuite la valeur de ces checkbox pour créer un implode et enregistrer les valeurs dans un champ de la base de données. Le problème est qu'en ligne, mon $_POST n'est pas reconnu comme un tableau et qui me donne donc lieu à une erreur sur mon implode :
Warning: implode() [function.implode]: Invalid arguments passed in
Mon var_dump($_POST) me donne çà:
["choix"]=> string(5) "Array"
Voici mon code :
Code : Tout sélectionner
if($_POST['submit']=='Valider'){
if(!isset($_SESSION['choix'])){
$_SESSION['choix']=array();
}
$count=count($_POST['choix']);
echo $count;
var_dump($_POST);
//exit();
if($count==''){
$erreur='Vous n\'avez opéré aucun choix concernant les mets du produit. Veuillez cocher, au minimum, une case avant de valider. (Ne pas tenir compte de ce message si vous avez fait "précédent")';
} else {
$categ=implode(',', $_POST['choix']);
// on enregistre en session les valeurs qui seront affectées au champ categ_etab de la table tbl_etab
$_SESSION['categ']=$categ;
$_SESSION['choix']=$_POST['choix'];
header('Location: adm-cob-produit-mets-processor.php?famille='.$_GET['famille'].'&produit='.$_GET['produit']);
}
}
Et une partie de mon formulaire :
Code : Tout sélectionner
<tr>
<td width="40"> </td>
<td width="930" colspan="2" align="left">
';
if($existe_mets==0){ echo '
Aucun met n\'est enregistré';
} else {
while($row_mets=mysql_fetch_assoc($rs_mets)) {
$_explode=explode(',',$row_produits['mets']);
//var_dump($_explode);
echo '
<p class="type-choix"><input type="checkbox" name="choix[]" id="choix[]" value="'.$row_mets['id_met'].'" ';
if(is_array($_POST['choix']==TRUE) && in_array($row_mets['id_met'],$_POST['choix'])){
echo'checked="checked"';
}
echo'/> '.$row_mets['nom_met'].'</p>
';
}
}echo'
</td>
</tr>
';
}
echo'<tr>
<td class="titre2" colspan="3" align="center">
<input type="submit" name="submit" id="submit" class="bouton" value="Valider"/>
</td>
</tr>
</form>
</table>';
Qu'en pensez-vous? Avez-vous déjà rencontré ce type de problème?
Bien cordialement,
@+!
Bonjour,
J'ai un site hébergé sur un Plesk chez Amen qui me pose problème.
En effet, j'utilise sur une administration un formulaire avec des checkbox. Elle fonctionne très bien en local mais pas en ligne et je ne parviens pas à savoir pourquoi.
Pour un produit, on peut lui affecter plusieurs critères (via checkbox). Je récupère ensuite la valeur de ces checkbox pour créer un implode et enregistrer les valeurs dans un champ de la base de données. Le problème est qu'en ligne, mon $_POST n'est pas reconnu comme un tableau et qui me donne donc lieu à une erreur sur mon implode :
[quote]Warning: implode() [function.implode]: Invalid arguments passed in[/quote]
Mon var_dump($_POST) me donne çà:
[quote]["choix"]=> string(5) "Array" [/quote]
Voici mon code :
[code]if($_POST['submit']=='Valider'){
if(!isset($_SESSION['choix'])){
$_SESSION['choix']=array();
}
$count=count($_POST['choix']);
echo $count;
var_dump($_POST);
//exit();
if($count==''){
$erreur='Vous n\'avez opéré aucun choix concernant les mets du produit. Veuillez cocher, au minimum, une case avant de valider. (Ne pas tenir compte de ce message si vous avez fait "précédent")';
} else {
$categ=implode(',', $_POST['choix']);
// on enregistre en session les valeurs qui seront affectées au champ categ_etab de la table tbl_etab
$_SESSION['categ']=$categ;
$_SESSION['choix']=$_POST['choix'];
header('Location: adm-cob-produit-mets-processor.php?famille='.$_GET['famille'].'&produit='.$_GET['produit']);
}
}[/code]
Et une partie de mon formulaire :
[code]<tr>
<td width="40"> </td>
<td width="930" colspan="2" align="left">
';
if($existe_mets==0){ echo '
Aucun met n\'est enregistré';
} else {
while($row_mets=mysql_fetch_assoc($rs_mets)) {
$_explode=explode(',',$row_produits['mets']);
//var_dump($_explode);
echo '
<p class="type-choix"><input type="checkbox" name="choix[]" id="choix[]" value="'.$row_mets['id_met'].'" ';
if(is_array($_POST['choix']==TRUE) && in_array($row_mets['id_met'],$_POST['choix'])){
echo'checked="checked"';
}
echo'/> '.$row_mets['nom_met'].'</p>
';
}
}echo'
</td>
</tr>
';
}
echo'<tr>
<td class="titre2" colspan="3" align="center">
<input type="submit" name="submit" id="submit" class="bouton" value="Valider"/>
</td>
</tr>
</form>
</table>';[/code]
Qu'en pensez-vous? Avez-vous déjà rencontré ce type de problème?
Bien cordialement,
@+!