checkbox permettant d effacer les donnees de db

Eléphanteau du PHP | 14 Messages

24 mai 2006, 13:50

la page éducation.php elle fait quoi? parce que là elle doit traitée le formulaire.

iruka
Invité n'ayant pas de compte PHPfrance

24 mai 2006, 13:59

en fait, la page education montre la page initiale et j ai integre le php dans la page pour gerer les champs obligatoires qui ne sont pas remplis. le formulaire se renvoie a lui meme. je peux poster toute la page mais c est long et pas tres plaisant a lire...


le $i==1 en fait, c est un peu tordu, je pense pas que cela soit la bonne maniere mais je teste si le champ est vide, s il ne l est pas j incremente la variable $i. a la fin, si la somme de la variable $i est egal au nombre de test ok, alors je passe a la suite.

Eléphanteau du PHP | 14 Messages

24 mai 2006, 16:39

Code : Tout sélectionner

le $i==1 en fait, c est un peu tordu
il fallait que je travaille, donc, je reprend.éffectivement, c'est tordu.tu as toujours les mêmes erreurs?

iruka
Invité n'ayant pas de compte PHPfrance

25 mai 2006, 03:01

non, je n ai pas trouve la solution pour l instant...

en fait, le bouton submit etant en dehors de la boucle, j ai l impression que le probleme vient de la. je vais essayer de faire un simple bouton 'effacer' en lieu et place des checkbox pour tester si ca marche deja comme ca. si ca marche avec un simple submit, c est que forcement, il y a un souci dans ma facon de gerer le submit+checkbox.

iruka
Invité n'ayant pas de compte PHPfrance

25 mai 2006, 04:18

bon, j ai presque trouve!!!!

y avait une grosse erreur! je fermais le formulaire a chaque fin de boucle au lieu de fermer le formulaire en dehors de la boucle! forcement ca allait pas marche correctement...

mais bon, j ai cependant un petit souci : lorsque je coche une case pour l effacer (ou plusieurs maintenant!), il efface bien la ou les donnees dans la table mais j ai les donnees effacees qui apparaissent quand meme lors du rechargement de la page :shock: il faut que je reappuie sur le bouton effacer pour que cette fois les donnees disparaissent de l affichage

ca doit etre une condition que j ai foire, je vais regarder ca de plus pres...

voila le code qui fonctionne (a peu pres, disons que je peux effacer plusieurs donnees lorsque je choisis des checkbox, c etait mon probleme initial)
<?php 
include ("connexion/mysql.inc.php");

// je verifie que le formulaire a ete envoye et qu il a passe mon test
if (isset($_POST['nom2']) && $i==1){

// si oui, j insere les informations du formulaire dans la table 
$sql = "INSERT INTO education(id,schoolname,graduation,schoollevel,educationmonth,educationyear) VALUES ('$id','$nomecole','$degree','$ecolelevel','$educationmois','$educationannee')";     
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
}

// je selectionne les donnees dans la table
	 $sql2 = mysql_query("SELECT * FROM education WHERE id=$id ORDER BY educationyear DESC"); 
$total = mysql_num_rows($sql2);

// s il y a des donnees, je les affiche
	if ($total >0) {
echo "<form name=\"delete\" method=\"post\" action=\"education.php\">";
	echo"<tr>";
           echo"<td colspan=\"6\" class=\"submessage\">";
              echo"  vos donnees";
           echo" </td>";
       echo" </tr>";
       echo"<tr>";
           echo"<td class=\"header\" align=\"center\">annee</td>";
           echo" <td class=\"header\" align=\"center\">mois</td>";
         echo"  <td class=\"header\" align=\"center\" width=\"80%\">ecole</td>";
          echo"  <td class=\"header\" align=\"center\" width=\"10%\"><br/></td>";
          echo"  <td class=\"header\" align=\"center\" width=\"10%\"><br/></td>";
      
     echo"   </tr>";
	 
	while ($donnees = mysql_fetch_array($sql2) )
	{
    echo"    <tr>";
      echo"     <td class=\"input1\">";
            echo    $donnees['educationyear'];
        echo "</td>";
           echo" <td class=\"input1\">";
              echo    $donnees['educationmonth'];
        echo"    </td>";
        echo"    <td class=\"input1\">";
           echo      $donnees['schoolname'];
       echo"    </td>";
       echo"    <td class=\"input1\">";
              echo    $donnees['schoollevel'];
   
        echo"   </td>";
       echo"    <td class=\"input1\">";
           echo    $donnees['graduation'];
        echo"   </td>";
        echo"   <td class=\"input1\" align=\"center\">";
       echo"        <input type=\"checkbox\" name=\"aeffacer[]\" value=\"".$donnees['auto']."\" >";
	       echo"     </td>";
    echo"   </tr>";
      echo" </tr>";	

  } 

// je verifie la valeur de la case a cocher
$effacer = (isset($_POST['aeffacer'])) ? $_POST['aeffacer']:null; 

// si elle n est pas vide, je cherche les cases cochees et j efface les donnees avec une requete
if (!empty($effacer)) 
  { 
foreach($effacer as $valeur) 
   { 
    $sql2 = "DELETE FROM education WHERE auto=".$valeur."";
	echo $sql2."<br>";
	$sql2=mysql_query($sql2);
	echo $sql2."<br>";
   }	
  }
//je ferme le formulaire 
	echo"    <tr>";
    echo"  <td class=\"header\" align=\"center\">";
         echo"   <input type=\"submit\" name=\"nom\" value=\"effacer\">";
         echo"   </td>";
		   echo" </tr>";	
	echo"</form>";
   
  } 
 
?>

Eléphanteau du PHP | 14 Messages

25 mai 2006, 05:35

y avait une grosse erreur! je fermais le formulaire a chaque fin de boucle au lieu de fermer le formulaire en dehors de la boucle! forcement ca allait pas marche correctement...
signalé sur le premier post.

Code : Tout sélectionner

j ai les donnees effacees qui apparaissent quand meme lors du rechargement de la page
les check cochées?

iruka
Invité n'ayant pas de compte PHPfrance

25 mai 2006, 06:54

effectivement, je n avais pas compris ce que tu voulais dire...

en fait, imaginons que la personne entre ses donnees, les donnees entrees validees apparaissent juste en dessous avec les checkbox pour effacer.

si elle coche une de ses entrees pour l effacer, appuie sur effacer, la page se recharge mais la donnee qu elle a voulue effacer apparait quand meme. pour la faire disparaitre de l ecran, il faut reappuyer sur effacer sans cocher de case et cette fois tout rentre dans l ordre. du coup, j ai fait une redirection sur la page des que le bouton effacer est appuye mais bon c est pas tres propre dans le concept...

Eléphanteau du PHP | 14 Messages

25 mai 2006, 15:31

salut


j'ai aussi ce pb avec un form de recherche.je ne sais pas d'où çà vient.un pragma avec no-cache est une solution, reload aussi.