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 :

[PHP-JS] controler la nom selection de 2 check box


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 202
    Par défaut [PHP-JS] controler la nom selection de 2 check box
    Bonjour a tous, voila mon probleme:

    Je crée une lsite dynamique de valeurs avec une base sql pour créer des check box: 2 par ligne

    -->j'ai une fiche de surveillance, je peux la supprimer ou la restaurer. Or si je clicque sur les 2 valeurs en meme temps, je voudrai bloquer le traitement du formulaire!

    Voici le code actuel:

    1) celui du formulaire:

    <table width="700" cellpadding="0" cellspacing="0" border="0" bgcolor="#EFEFEF">
    <tr bgcolor="#E5E5E5">
    <td><b><i>UEP</i></b></td>
    <td><b><i>Module</i></b></td>
    <td><b><i>Intitulé</i></b></td>
    <td><b><font color='#E8661D'>Type Fiche</font></b></td>
    <td><b><i>Date de Création</i></b></td>
    <td><b><i>Restaurer</i></b></td>
    <td><b><i>Supprimer</i></b></td>
    </tr>
    <form name="suppression" enctype="multipart/form-data" method="post" action="">
    <?
    $cpt = 1;
    $requete2 = mysql_query("SELECT * FROM t_fiche WHERE `active`='0' ORDER BY 'uep','module','type_f'") or die (mysql_error());
    while($res = mysql_fetch_array($requete2))
    {
    $id=$res['id_fiche'];
    echo "<tr ";
    if (($cpt%2) == 0) echo "bgcolor=\"#E5E5E5\"";
    echo ">";
    echo "<td>".$res['uep']."</td>";
    echo "<td>".$res['module']."</td>";
    echo "<td><a href='index.php?page=visu_fiche&id=".$id."'><img src='images/deco/visu.gif' border='0' >".$res['libelle_f']."</a></td>";
    echo "<td><b><font color='#E8661D'>".$res['type_f']."</font></b></td>";
    echo "<td>".$res['date']."</td>";
    echo '<td><input type="checkbox" name="restaurer[]" value="'.$id.'"></td>';
    echo '<td><input type="checkbox" name="choix[]" value="'.$id.'"></td>';
    echo "</tr>";
    $cpt++;
    }
    ?>
    <tr>
    <td colspan="7"><br><div align="center"><input name="supp" type="submit" value="Valider " /><br><br></div></td>
    <tr>
    </form>
    </table>

    2) traitement des donnes


    if (isset($_POST['supp']))
    {
    $choix = $_POST['choix'];
    $restaurer = $_POST['restaurer'];
    //on va récupérer toutes les cases sélectionnées, pour choix d'abord ( demande de suppression définitive de la table)
    if(!empty($choix))
    {
    foreach($choix as $rep)
    {
    if(!empty($rep))
    {
    $id=$rep;
    //reprendre le nom de l'image, la supprimer physiquement du répertoire!
    $requete = mysql_query("SELECT * FROM t_fiche WHERE `id_fiche`='$id' ") or die (mysql_error());
    $donnees = mysql_fetch_array($requete)or die (mysql_error());
    $image1= $donnees['image1'];
    $image2= $donnees['image2'];
    //si image 1 presente (non vide)
    if(!empty($image1))
    {
    unlink ("up_images/$image1");
    }
    if(!empty($image2))
    {
    unlink ("up_images/$image2");
    }
    //effacement définitif de la bdd
    mysql_query("DELETE FROM t_fiche WHERE `id_fiche`='$id' ") or die (mysql_error());
    //echo $id;
    }
    }
    }
    //on va récupérer toutes les cases sélectionnées, pour choix d'abord ( demande de suppression définitive de la table)
    if(!empty($restaurer))
    {

    foreach($restaurer as $rep2)
    {
    if(!empty($rep2))
    {
    $id=$rep2;
    //restauration simple de la fiche: on la reactive!
    mysql_query("UPDATE t_fiche SET `active`='1' WHERE `id_fiche`='$id' ") or die (mysql_error());
    //echo $id;
    }
    }
    }


    Merci beaucoup pour votre aide! Je galere dessus!

  2. #2
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    Je te conseille à l'avenir d'écrire un code moins long car c'est rebutant à la lecture et aussi pense à utiliser les balises codes pour encadrer ton code.

    Sinon pour en revenir à ton problème, pourquoi ne pas utiliser les boutons radios pluto que des checkboxes?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 202
    Par défaut
    et bien en fait je veux permettre une selection multiple sur plusieurs colonnes mais empecher les 2 cases d'etres cochées sur la meme ligne. la mise en forme du code est partie avec le copier/coller, désolé...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    la reponse se trouvera certainement dans le forum javascript

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 202
    Par défaut
    ça m'etonnerai, c'est plus dans le traitement du formulaire a mon avis!

  6. #6
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    je répète ce que j'ai dis en utilisant des boutons radios tu ne permet pas d'avoir tes 2 cases cocher.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 202
    Par défaut
    le probleme, si je fais ça, je ne pourrai pas récupérer plusieurs lignes de choix....

  8. #8
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    essaye d'associer les cases d'une meme ligne au meme groupe cad meme nom et avec une fonction JS sur onClick qui permet une seule case coché

  9. #9
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    si c'est possible en faisant par exemple:
    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
     
    $i=0
    while($res = mysql_fetch_array($requete2)) 
    { 
    $id=$res['id_fiche']; 
    echo "<tr "; 
    if (($cpt%2) == 0) echo "bgcolor=\"#E5E5E5\""; 
    echo ">"; 
    echo "<td>".$res['uep']."</td>"; 
    echo "<td>".$res['module']."</td>"; 
    echo "<td><a href='index.php?page=visu_fiche&id=".$id."'><img src='images/deco/visu.gif' border='0' >".$res['libelle_f']."</a></td>"; 
    echo "<td><b><font color='#E8661D'>".$res['type_f']."</font></b></td>"; 
    echo "<td>".$res['date']."</td>"; 
    echo '<td><input type="radio" name="choix['.$i.'][]" value="restaurer '.$id.'"></td>'; 
    echo '<td><input type="radio" name="choix['.$i.'][]" value="supprimer '.$id.'"></td>'; 
    echo "</tr>"; 
    $cpt++;
    $i++
    }
    Pense aussi au "\n" à la fin de tes echos pour rendre ton code html plus lisible.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 202
    Par défaut
    ah? je comrpend pas bien commen tu utilise le compteur i et son role?

  11. #11
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    son role est de grouper les boutons radios correspondant à restaurer et supprimer.

Discussions similaires

  1. S'adresser à une checkbox ayant comme nom " selection[]
    Par AlphaYoDa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/02/2006, 22h35
  2. [PHP-JS] Controle de saisie
    Par toitoine01 dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2006, 15h30
  3. [POO] [PHP 4.4.X] Nom d'une propriété de classe
    Par stailer dans le forum Langage
    Réponses: 8
    Dernier message: 11/12/2005, 23h02
  4. [mysql - php] plusieurs tables pour un select ORDER BY
    Par sanosuke85 dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/12/2005, 19h25
  5. Réponses: 4
    Dernier message: 28/07/2005, 10h45

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