UPDATE d'un champ checkbox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : UPDATE d'un champ checkbox

par Nad21 » 18 nov. 2008, 16:56

le probleme c'est que c'est une script complet je vais te donner les morceaux

formulaire :

Code : Tout sélectionner

<input type="checkbox" name="debattre" <?php if($tab_pa[$i]["debattre"]=="oui") { echo 'checked="checked"'; } ?> />
le form renvoi à un fichier update qui entre autre upload des fichiers photo donc tout le debut c'est pour les photos
if(empty($_POST['debattre'])){ 
 $_POST['debattre']==NULL;
}

$modif=modifier_pa($id,$_POST['date'],$_POST['titre'],$_POST['texte'],$_POST['prix'],$_POST['debattre'],$_POST['nom'],$_POST['email'],$nom_fichier);
la fonction modifier_pa se trouve dans un fichier special
function modifier_pa($id_pa,$date_pa,$titre_pa,$texte_pa,$prix_pa,$debattre_pa,$nom_pa,$email_pa,$nom_fichier){
	//vérification des paramètres passés
	$tab_erreur = array();
	if(is_null($date_pa)){
		$tab_erreur["date_pa"] = $date_pa;
	}
	if(is_null($titre_pa)){
		$tab_erreur["titre_pa"] = $titre_pa;
	}
	if(is_null($texte_pa)){
		$tab_erreur["texte_pa"] = $texte_pa;
	}
	if(is_null($nom_pa)){
		$tab_erreur["nom_pa"] = $nom_pa;
	}
	
	//affichage du tableau d'erreurs si elles existent
	$nb_erreur = count($tab_erreur);
	if($nb_erreur > 0){
		echo $tab_erreur;
exit();
	}
	
		(string)$maj_photo  =  ""; 
if( !empty($nom_fichier) ) 
{ 
   $maj_photo  =  ",photo='$nom_fichier'"; 
} 

	
	$up="UPDATE petitesannonces SET date='$date_pa', titre='$titre_pa',texte='$texte_pa',prix='$prix_pa',debattre='$debattre_pa',nom='$nom_pa',email='$email_pa' $maj_photo WHERE id=$id_pa";
	echo $up;
	$resultat=mysql_query($up);
	if ($resultat){
		return true;
	}
	else {
		return false;
	}
}
voilà

par yaug » 18 nov. 2008, 16:47

peux tu montrer l'ensemble du code html et l'ensemble du code php?
Cela sera surement plus simple pour t'aider.
Merci.

par Nad21 » 18 nov. 2008, 16:41

maintenant quand je coche ou que je ne coche pas ca me modifie l'enregistrement en mettant 'on' dans tous les cas
j'ai juste ajouter le
if(empty($_POST['debattre'])){
$_POST['debattre']=="rien";
}

par yaug » 18 nov. 2008, 16:14

hum.
A toi de faire quelques chose comme ceci alors :
if(empty($_POST['debattre'])){
$query = "UPDATE tatable SET tonchamp = NULL WHERE tacleprimaire = '$id";
mysql_query($query);
}
Tu véritifies si le champ n'est pas vide, si il l'est tu met alors le champ de la table à jour.

par Nad21 » 18 nov. 2008, 16:09

non j''etais en trian d'ecrire quand tu a posté lé tien
j'ai regardé mais ca ne résout pas mon probleme
quand c'est pas coché ca ne renvoi aucune valeur donc ca ne peut pas me changer mon enregistrement puisque ca n'envoi rien

par AB » 18 nov. 2008, 15:58

As-tu lu le lien que je t'ai donné jusqu'au bout ?

par Nad21 » 18 nov. 2008, 15:52

oui ca m'aide je le savais pas
donc si j'ai bien coché quand j'ai en 1er lieu (oui dans ma bdd) je peux pas revenir sur non??

ya t'il une astuce pour changer une case a cocher??

par AB » 18 nov. 2008, 15:51

par yaug » 18 nov. 2008, 15:37

Bonjour.

Hum...
Par "si il a été changé" tu entends surement décoché non ?
Je dirais à première vu que c'est normal.
Une checkbox non cochée n'est pas passé dans le $_POST.

Cela t'aide ?

UPDATE d'un champ checkbox

par Nad21 » 18 nov. 2008, 15:35

Bonjour
J'ai un formulaire dans lequel on peut inserer en ligne des petites annonces.
j'ai un champ checkbox dans lequel on coche si le prix est a débattre ou sinon on ne coche pas.

Code : Tout sélectionner

<input type="checkbox" name="debattre" value="oui"/>
ce qui me mets oui dans ma bdd, si c'est pas coché l'enregistrement est vide pour ce champs

par contre j'ai un formaulaire de modification des annonces et là ca bug
je n'arrive pas amodifier la boite a cocher
voilà mon code pour le formulaire d'update :

Code : Tout sélectionner

<input type="checkbox" name="debattre" <?php if($tab_pa[$i]["debattre"]=="oui") { echo 'checked="checked"'; } ?> />
par contre je n'arrive pas à recuperer la valeur de ce champs s'il a été changé....
merci de votre aide
Nadege