Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2007, 02h54   #1
Membre à l'essai
 
Inscription : décembre 2003
Messages : 107
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : décembre 2003
Messages : 107
Points : 21
Points : 21
Par défaut Utilisation des cases à cocher et "switch case"

j'ai un petit problème sur un script PHP, j'ai une liste avec checkbox pour pouvoir effacer en masse les données, hélas rien ne fonctionne !

le premier switch =display affiche la liste avec ces fameux checkbox
le second = deletetmp demande une confirmation
le dernier =deletecheck efface les données

voici mon script qui est sur la meme page grace à des switch

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
	echo '<form action="'.$_SERVER["PHP_SELF"].'?r='.$r.'&amp;ru='.$ru.'&amp;c=deletetmp" method="post">
	<table summary="">
	<tr>
	<th>titre</th>
	<th>url</th>
	<th>description</th>
	<th>update</th>
	<th>supprimer</th>
	<th>gggg</th>
	</tr>';
	while ($resultat = mysql_fetch_array($resultSQLP))
	{	
	echo '<tr>
	<td>'.$resultat['links'].'</td>
	<td>'.$resultat['url'].'</td>
	<td>'.$resultat['description'].'</td>
	<td><a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=update&id='.$resultat['id_links'].'" title="modifié" />update</a></td>
	<td><a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=deletetmp&id='.$resultat['id_links'].'" title="supprimé" />delete</a></td>
	<td>'.$resultat['id_links'].'<input type="checkbox" name="check[]" value="'.$resultat['id_links'].'" /></td>
	</tr>';
	}
	echo '</table>
	<input type="image" name="envoyer" src="images/icones/btn_tts-tickets-closed_bg.gif" />
	<input type="hidden" name="envoyer" value="envoyer" />
	</form>';
	require("include/pagination.php");
break;
le second et troisieme switch

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
case 'deletetmp':
	//if (isset($_GET['id'])) {$id=$_GET['id'];} else {
	$id=$_POST['check'];//}
	echo 'Voulez-vous vraiment supprimé le lien ?<br /><a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=deletecheck&id='.$id.'" title="modifié" />oui</a><br /><a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=display" title="retour" />non</a>';
break;
 
case 'deletecheck':
	$id=$_GET['id'];  
    for ($i = 0; $i < count($id); $i++)
    {
    $requeteSQL= "DELETE FROM links WHERE id_links='$id[$i]'";
    $resultSQL=mysql_query($requeteSQL);
	}
	echo 'Le lien a bien été supprimé. <a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=display" title="retour" />retour</a><p>';
break;
jarod71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2007, 08h25   #2
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Je ne vois pas d'erreur appriori, mais perso, je commence toujours mes formulaires en séparant bien la partie formulaire HTML et traitement du formulaire, comme ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_POST['valider'])){
 
  die('Traitement de la saisie ici...');
 
}
?>
 
<form name="form1" method="post">
<input name="valider" type="submit" value="VALIDER"/>
</form>
La solution serait peut-être de mettre ton formulaire en dernier cas et par défaut aussi...
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2007, 11h27   #3
Membre à l'essai
 
Inscription : décembre 2003
Messages : 107
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : décembre 2003
Messages : 107
Points : 21
Points : 21
pas évident, car lorsque j'efface directement en passant par deletecheck cela fonctionne, mais lorsque je passe par la page deletetmp et ensuite deletecheck sa plante, dommage..... mais j'arrive pas à voir non plus ce qui bug
jarod71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2007, 11h46   #4
Membre à l'essai
 
Inscription : décembre 2003
Messages : 107
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : décembre 2003
Messages : 107
Points : 21
Points : 21
lorsque je clique sur le bouton envoyer du formulaire et que je pointe directement vers la case deletecheck cela fonctionne ! mais lorsque je passe par deletetmp, on dirait que la variable ne passe pas entre deletetmp et deletecheck..... ?
jarod71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2007, 14h37   #5
Membre à l'essai
 
Inscription : décembre 2003
Messages : 107
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : décembre 2003
Messages : 107
Points : 21
Points : 21
j'ai trouvé la solution, merci quand même de votre aide, je vous note le code, cela pourra servir à d'autres personnes, la solution c'était les serialize, unserialize. bonne fin de journée....

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
case 'deletetmp':
	$id=$_POST['id'];
	echo 'Voulez-vous vraiment supprimé le lien ?<br /><a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=deletecheck&str='.addslashes(urlencode(serialize($id))).'" title="modifié" />oui</a><br /><a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=display" title="retour" />non</a>';
break;
 
case 'delete':
	$id=$_GET['id'];
	$requeteSQL='DELETE FROM links WHERE id_links="'.$id.'" LIMIT 1';
	$resultSQL=mysql_query($requeteSQL);
	echo 'Le lien a bien été supprimé. <a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=display" title="retour" />retour</a><p>';
break;
 
case 'deletecheck':
	echo $tab = unserialize(urldecode(stripslashes($str)));
    for ($i = 0; $i < count($tab); $i++)
    {
    $requeteSQL= "DELETE FROM links WHERE id_links='$tab[$i]'";
    $resultSQL=mysql_query($requeteSQL);
	}
	echo 'Le lien a bien été supprimé. <a href="'.$_SERVER["PHP_SELF"].'?r='.$r.'&ru='.$ru.'&c=display" title="retour" />retour</a><p>';
break;
jarod71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h54.


 
 
 
 
Partenaires

Hébergement Web