IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Utilisation des cases à cocher et "switch case"


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Points : 51
    Points
    51
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...
    De retour parmis vous après 10 ans!!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Points : 51
    Points
    51
    Par défaut
    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

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Points : 51
    Points
    51
    Par défaut
    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..... ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Points : 51
    Points
    51
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2003] Macro cases à cocher liées à d'autres cases à cocher
    Par Lili38100 dans le forum VBA Word
    Réponses: 5
    Dernier message: 28/01/2013, 14h15
  2. Réponses: 1
    Dernier message: 25/05/2011, 09h12
  3. Réponses: 4
    Dernier message: 12/12/2008, 07h28
  4. Cocher des cases d'une liste de cases à cocher
    Par isachat666 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 05/12/2005, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo