prob selection ds table pour suppression via bouton

Nouveau WRInaute
'lut a tous
voila g un probleme de prog (one more time !!)

je fé une selection ds une table ce qu'il me donne plusieurs enregistrements selectionnes.
ces resultas sont affichés les uns a la suite des autres ds des tableau via un while.
la dedans, ya des resultats ke j'aimerai supprimer, g donc fé unbouton "supprimer" apres chaque tableau
le problem c ke j'arrive pas a supprimer le bon element, c toujours le dernier en liste ki est viré

voila le bout du code ki pose probleme:

<input type="hidden" name="supprime" value="0">
<input type="hidden" name="NoSal" value="0">
<?
While ($ResListeExist=db_fetch_array($ReqListeExist))
{ ?>
<table width="100%" border="1" cellspacing="0" cellpadding="1" align="center" bordercolor="#CCCCCC">

/* formulaire */

</table>

<input type="hidden" name="NumSalon" value="<?=$ResListeExist['NoSalon'];?>">
<input type="hidden" name="Date_salon" value="<?=$Date_salon;?>">
<input type="hidden" name="village" value="<?=$village;?>">

<input type="button" class="Titre" name="bouton_suppr" value=" Supprimer " onClick="document.agenda.supprime.value = 1; document.agenda.NoSal.value = document.agenda.NumSalon.value; submit()">

} ?>

</form>


Si qqn a une idee de koi ki marche pas ou une autre methode pour ma suppression d'element, ce serait cool de m'indiquer la marche a suivre.

@++ !!
 
WRInaute discret
Il faut que tu fasse un formulaire pour CHAQUE enregistrement. (dans la boucle)
Avec un nom de formulaire different chaque fois.
Sinon il retient que la derniere variable et n'affecera toujour et seulement celui la.

V'la, si besoin de plus de precision, demande.

Sky
 
Nouveau WRInaute
bin en fait g deja pensé a faire comme ca avec plusieurs formulaire
mé je peut pas savoir combien d'enregistrement existants il peut y avoir a supprimer
Car, des enregistrements peuvent etre ajoutés n'importe kan
il peut y avoir 0 comme 100... enregistrements

c la tout le problem !!
 
WRInaute discret
Mais c'est pas grave ca :)

si tu fais un truc du style (de tete alors fais gaffe au fautes)

Code:
$formName="1";
               while($row=mysql_fetch_array($res)) {

                        $ResListeExist="$row[resclistExist]";
                        $Date_salon="$row[Date_Salon]";
                        $village="$row[village]";

print "
<form method=\"post\" action=\"page_Supression.php\">
<input type="hidden" name="NumSalon" value=\"".$ResListeExist['NoSalon']."\"> 
<input type="hidden" name="Date_salon" value=\"".Date_salon."\"> 
<input type="hidden" name="village" value=\"".$village."\"> 
<input type=\"submit\" name=\"".$formName."\" value=\"Supprimer->\"></form>";

$formName++;
}

V'la, un truc vite fais, ca devrai te donner une idee je pense :)
Enfin, si c'est bien ce genre de trucd que tu veut.

la variable formName est pour donner un nom differrent a chaque formulaire, sinon ca marchjera pas.

Sky
 
Nouveau WRInaute
oops, c vrai que j'ai pas pas pensé a la balise CODE, sorry !

bon g essayé cette méthode qui change le nom du formulaire et c vré ke c'est un peu mieux.
Mais g toujours un problem, comment je peu recuperer les valeurs du formulaire pour le javascript du "OnClick" de mon bouton "supprimer" ??

parce ke ca je suppose ke cé faut:
Code:
document.formName.NumSalon.value

kes kil faut mettre alors a la place ??
 
WRInaute discret
Le onclick que tu veut faire c'est pour que l'action soit executer dans une nouvelle page?

Euh, pour passer une variable php a javascript, je ne sais pas, mais je asis que c'est une kestion souvent poser lol.

Vais me renseigner et revient :)
 
WRInaute discret
Attend, je vient de lire un post dans le meme forum ou tu demande la meme question, et ils t'on repondu... ca marche pas ca?

lol
 
Nouveau WRInaute
ouais... mais non enfait c pas pareil !!

le truc que je demandais l'aut fois etait pour savoir comment recuperer une variable javascript ds un php !!
là, le problem est different !

c peut etre ma faute, g sans doute mal expliqué mon prob:
je recommence tout depuis le debut: :)

je bosse sur un systeme qui enregistre differentes manifestation ("salons") ds une bdd.
mais il peut arrivé ke (par mégarde) l'on entre 2 fois la meme manif.
g donc fé un test ki regarde ds la base si un salon a la meme date existe deja.
Si tel est le cas, on affiche ds un formulaire toutes les manifs deja existante a la meme date : un formulaire pour chaque salon (avec un "while" et un nom de formulaire ki change a chaque fois)
jusque le tout marche impec !!!!

c apres ke ca commence a merder ! lol

j'ai ajouter un bouton supprimer apres chaque formulaire, au cas ou on souhaite supprimer un enregistrement
PROBLEME 1: c'etait a chaque fois le dernier enregistrement ki etait viré ! donc g suivi les conseil de sky et c là ke g fé un nom de formulaire variable

PROBLEME2 : (prob actuel) Ma requete SQL ki doit se charger de supprimer l'enregistrement ne retrouve plus l'identifiant du salon a viré (clé primaire de ma table !)
et ca, je suis sur a 99% ke c parce ke kan j fé mon "onClick" pour le bouton "supprimer"
g besoin d'envoyer un identifiant: "NoSalon" vers la requete située en dehors du formulaire et du "while"
avant y avait qu'un seul et unique formulaire donc pa de prob de recuperation de données

maintenant g plein de formulaire different avec des noms ki change...c le bordele !!!
g l'impression ke le prog il sé plus ou il en et moi non plus d'ailleurs !!!! :?

g donc déclaré une variable externe au formulaire ki doit recupéré l'identifiant du salon a supprimer
ce qui donne

Code:
document.agenda.NumSalon.value = document.formName.NoSal.value;

agenda -> formulaire courant (ya plein d'aut truc ki se passe ds le prog..)
NumSalon -> variable ki recupere l'identifiant
NoSal -> identifiant du salon a supprimer
formName -> nom variable du form (la syntaxe doit etre fausse j croi)

Bon voila, si yen a kon le courage de lire tout ca et de m'aider a solutionner mon probleme ou meme de me dire si g fé trop compliké et ke j me goure completement
bin dite le moi !!!!
parce ke la, bin moi avec mes toutes ch'tites notions: je seche !!!

Thanks !!
 
WRInaute discret
Houla :)
Euh, c'est pas parce que le nom du formulaire change que qqchose d'autre va changer :)
Le nom est juste un identifiant pour qu'il ne ce melange pas les pedale vu qu'il y en a plusieur :)
Est ce que si tu as un seul enregistrement ca marche?

Sinon, envoie moi ton code, et je le test chez moi :)
envoie aussi un exmeple de la table mysql :)

Sky
 
Nouveau WRInaute
Voila je pense la maniere la plus simple de te montrer le probleme:
je pourrais t'envoyer le code mais ya tellement d'include ke faudrai ke j t'envoie une dizaine de fichier
donc, en voici une version simplifié:
Code:
<?
if ($REQUEST_METHOD=="POST"){
    if ($ajout_salon==1){

        // Insertion d'un salon
        //...
        
        $formulaire=0;
    }
    if($supprime==1){
        // Suppression d'un salon
        $SQLVillage = "DELETE FROM salons ".
	          "WHERE NoSalon=$NumSalon";
        $ReqVillage=db_db_query($bdd,$SQLVillage) or die("specialKO");
        $formulaire=1;
}

if(!isset($formulaire) || ($formulaire==0)){
        <form method="post" action="agenda_saisie.php" name="agenda">

         // recuperation des infos sur le salon

        </form> 
}

if($formulaire==1){ 		    			  
         // Verification si un salon de meme genre a la meme date existe deja
         $VerifExist = 0;
         if(isset($Date_salon) && isset($village)){
               $Date_salon_f= dateformat($Date_salon,"Y-m-d");
               $SQLverifExist = "SELECT * FROM salons ";
               $ReqverifExist = db_db_query($bdd,$SQLverifExist) or die("KO6");
               While ($ResverifExist=db_fetch_array($ReqverifExist)){
	if(($ResverifExist['Date_salon'] == $Date_salon_f) && ($ResverifExist['id_village'] == $village)) $VerifExist = 1;
               }
               if($VerifExist==1){?>
	<script language="JavaScript">
	       alert("Un ou plusieurs salon(s) à la même date dans la même ville existe(nt) déjà !");
	</script>
                 <? }
           } ?>
	
<form method="post" action="agenda_saisie.php" name="agenda">
<table width="100%" border="1" cellspacing="0" cellpadding="1" align="center" bordercolor="#CCCCCC">

       //recapitulation des infos rentres
       //...
       //...

       <input type="hidden" name="Date_saisie" value="<?=date("Y-m-d");?>">
       <input type="hidden" name="id_type" value="<?=$id_type;?>">
       <input type="hidden" name="TitreSalon" value="<?=$TitreSalon;?>">
       <input type="hidden" name="TypeSalon" value="<?=$TypeSalon;?>">
       <input type="hidden" name="Periodicite" value="<?=$Periodicite;?>">
       <input type="hidden" name="Date_salon" value="<?=$Date_salon;?>">
       <input type="hidden" name="Date_salon_f" value="<?=dateformat($Date_salon,"Y-m-d");?>">
        <input type="hidden" name="dpt" value="<?=$dpt;?>">
        <input type="hidden" name="village" value="<?=$village;?>">
        <input type="hidden" name="LieuSalon" value="<?=$LieuSalon;?>">	  
        <input type="hidden" name="tel" value="<?=$tel;?>">		 
        <input type="hidden" name="fax" value="<?=$fax;?>">		  
        <input type="hidden" name="Email" value="<?=$Email;?>">		  
        <input type="hidden" name="SiteWeb" value="<?=$SiteWeb;?>">
        <input type="hidden" name="PhotoSalon" value="<?=$IsPhoto;?>">	
        <input type="hidden" name="Commentaire" value="<?=$Commentaire;?>">
        <input type="hidden" name="CommentaireUS" value="<?=$CommentaireUS;?>">
        <input type="hidden" name="ajout_salon" value="0">

</table>
<input type="button" class="Titre" name="bouton_enreg" value=" Enregistrer " onClick="document.agenda.ajout_salon.value = 1; submit()">

<input type="button" class="Titre" name="bouton_annul" value=" Annuler " onClick="javascript:history.go(-1)">

</form>
	
<?if($VerifExist==1){
       $Date_salon_f = dateformat($Date_salon,"Y-m-d");
       $SQLListeExist = "SELECT * FROM salons ".
                                   "WHERE Date_salon='$Date_salon_f' AND id_village=$village ";
       $ReqListeExist = db_db_query($bdd,$SQLListeExist) or die("KO10");

       $formName="1";
       $supprime="0";
       while($ResListeExist=db_fetch_array($ReqListeExist)) {?>
              <form method="post" action="agenda_saisie.php" name="agenda">
              <table width="100%" border="1" cellspacing="0" cellpadding="1" align="center" bordercolor="#CCCCCC">

               //recapitulation des infos des salons pré-existant
               //....
 
              <input type="hidden" name="NumSalon" value="<?=$ResListeExist['NoSalon'];?>">
              <input type="hidden" name="supprime" value="<?=$supprime;?>">
              <input type="hidden" name="Date_salon" value="<?=$Date_salon;?>">
              <input type="hidden" name="village" value="<?=$village;?>">	
              </table>

              <input type="submit" name="<?=$formName?>" class="Titre" value=" Supprimer " onClick="document.agenda.supprime.value = 1;submit()">

              </form>
              <? $formName ++; ?>
              <? }	
} ?>
	
<br><?if($msg=="")$nb=1;else$nb=2;?>
<font color="#FF0000"><p align="center"><a href="javascript:history.go(-<?=$nb?>)">Retour</a></p></font>
<? }

le probleme vient de la variable "supprime" ki ne passe pas a 1, donc pas de suppression; sinon g fait un test l'identifiant est bien récupéré.
donc, j la pose la kestion pourkoi "NumSalon" est recuperé et pas "supprime" ??

desolé de balancer du code comme ca, mé bon c le seul moyen de bien exposer le prob !!
:)
 
WRInaute discret
euh, je connaissais pas cette faocn d'afficher une variable : <?=$variable;?>
Moi je fais <?PHP print $variable ?>

Le <? ?> peut creer des problemes... je ne connais plsu les raisons exact lol :)

Mais, pkoi la variable ne passe pas a 1, ca je sais pas...
Euh, la syntaxe javascript et moi... ont est facher :) :)

Je test deux truc chez moi, et revient :)

Vais mange aussi un peut tient ;)
 
Nouveau WRInaute
Euh !!! Question:
pourkoi ke kan je lance le code precedent , le prog ne marche pas
par contre si je force "supprime" a 1 ds le "input hidden" bin la ca a l'air de marcher correctement ??

si qqn peut m'expliquer ce serait bien parce ke la je crois ke j vé devenir FOU !!! ou alors c le php ki se fout de ma gueule !!
 
Discussions similaires
Haut