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 :

formulaire de recherche + checkbox


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
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut formulaire de recherche + checkbox
    j'ai un formulaire de recherche qui comprend :

    1 champ texte = NOM
    et plusieurs champs checkbox = fonction....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form method="post" name="form1" action="test_search.php">
    <label>nom</label><input name="searchvar1" class="form3" type="text" value="<? echo $searchvar1; ?>">
    <label>fonction</label>
    <input type="checkbox" name="searchvar2[]" value="01" <? if (ereg("01.*",$searchvar2)) {echo " checked=checked";} else {}; ?> />Député<br />
    <input type="checkbox" name="searchvar2[]" value="02" <? if (ereg("02.*",$searchvar2)) {echo " checked=checked";} else {}; ?> />Directeur<br />
    <input type="checkbox" name="searchvar2[]" value="03" <? if (ereg("03.*",$searchvar2)) {echo " checked=checked";} else {}; ?> />Technicien<br />
    <input type="checkbox" name="searchvar2[]" value="04" <? if (ereg("04.*",$searchvar2)) {echo " checked=checked";} else {}; ?> />Membre du secrétariat<p/>
    <input type="checkbox" name="searchvar2[]" value="05" <? if (ereg("05.*",$searchvar2)) {echo " checked=checked";} else {}; ?> />Patron de presse<br />
    <input type="checkbox" name="searchvar2[]" value="06" <? if (ereg("06.*",$searchvar2)) {echo " checked=checked";} else {}; ?> />Ancien sénateur<p/>
    <input type="checkbox" name="searchvar2[]" value="07" <? if (ereg("07.*",$searchvar2)) {echo " checked=checked";} else {}; ?> />Président d'une association<br />
    <input type="image" name="submit" src="images/icones/ok.gif" alt="valider" />
    </form>
    lors de la recherche j'arrive à extraire les données lorsque je ne fais qu'un choix dans les checkbox, mais si je veux une liste avec plusieurs checkbox cela ne fonctionne pas je pense que mon script de recherche n'est pas bon... quelq'un à une idée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    echo $bidule = implode(', ' , $HTTP_POST_VARS['searchvar2']); 
    $requete="SELECT * FROM test ";
    if ((empty($searchvar1)) && (empty($searchvar2)));
    elseif (empty($searchvar2)) $requete.="WHERE nomtest like '%$searchvar1%'";
    elseif (empty($searchvar1)) $requete.="WHERE test like '%$bidule%'";
    elseif ((!empty($searchvar1)) && (!empty($searchvar2))) $requete.="WHERE nomtest like '%$searchvar1%' AND test like '%$bidule%'";
    $requete.=" ORDER BY nomtest ASC";
    $result=mysql_query($requete);
    $totalresult=mysql_num_rows($result);

  2. #2
    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
    la nomination avec les [] comme vous avez fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="searchvar2[]" value="01"....
    fonctionne avec les listes (<select>) mais avec les checkbox ne fonctione plus.

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut
    bon j'ai presque trouvé mais j'ai problème au niveau du code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $requete="SELECT * FROM test ";
    if ((empty($searchvar1)) && (empty($searchvar2)));
    elseif (empty($searchvar2)) $requete.="WHERE nomtest like '%$searchvar1%'";
    elseif (empty($searchvar1)) { $requete.="WHERE test like '%$bidule%'";
    foreach ( $HTTP_POST_VARS['searchvar2'] as $name => $value )
        echo $requete.=" AND test LIKE '%$value%' ";}
    elseif ((!empty($searchvar1)) && (!empty($searchvar2))) $requete.="WHERE nomtest like '%$searchvar1%' AND test like '%$bidule%'";
    $requete.=" ORDER BY nomtest ASC";
    $result=mysql_query($requete);
    $totalresult=mysql_num_rows($result);
    }
    et voici ce qu'il m'affiche si je selectionne le checkbox 1 et 3....

    SELECT * FROM test WHERE test like '%%' AND test LIKE '%01%' SELECT * FROM test WHERE test like '%%' AND test LIKE '%01%' AND test LIKE '%03%'

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut
    cela ne fonctionne toujours pas, j'y arrive pas

    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
     
    $requete="SELECT * FROM test ";
    if ((empty($searchvar1)) && (empty($searchvar2)));
    elseif (empty($searchvar2)) $requete.="WHERE nomtest like '%$searchvar1%'";
    elseif (empty($searchvar1)) {
    	$requete.="WHERE test like '%$value%'";
    	{
    	foreach ( $HTTP_POST_VARS['searchvar2'] as $value )
    	echo $requete.=" AND test LIKE '%$value%' ";
    	}
    	}
    elseif ((!empty($searchvar1)) && (!empty($searchvar2))) $requete.="WHERE nomtest like '%$searchvar1%' AND test like '%$bidule%'";
    $requete.=" ORDER BY nomtest ASC";
    $result=mysql_query($requete);
    $totalresult=mysql_num_rows($result);
    }
    voici ce qu'il m'affiche

    SELECT * FROM test WHERE test like '%%' AND test LIKE '%06%' SELECT * FROM test WHERE test like '%%' AND test LIKE '%06%' AND test LIKE '%07%'

    manque pas grand chose

Discussions similaires

  1. Formulaire de recherche multitables
    Par SpyesX dans le forum Access
    Réponses: 7
    Dernier message: 24/11/2005, 12h50
  2. [MySQL] Formulaire de recherche PHP + un script d recherche en HTML
    Par Dsphinx dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/11/2005, 20h44
  3. alléger un formulaire de recherche
    Par jarod71 dans le forum Langage
    Réponses: 4
    Dernier message: 28/10/2005, 12h11
  4. Réponses: 3
    Dernier message: 20/10/2005, 13h42
  5. Réponses: 5
    Dernier message: 18/10/2005, 15h09

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