Bonjour à tous,
Voila j'ai fait un simple formulaire qui doit rechercher des résultats dans ma BDD SQL en fonction des choix du formulaire.
Le programme fonctionne mais à chaque fois que je clique sur Envoi, il me répète le div de résultat, au lieu d’effacer le précédent et réinitialiser la demande.
J'ai regardé un paquet de tutos, je débute humblement dans l'Ajax et le jQuery, mais je m'embrouille entre les deux...
Formulaire :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <? if ($S_sex=="1"){$Nsex="Femme";}if ($S_sex=="2"){$Nsex="Homme";} echo '<select id="S_sex" name="S_sex">';if ($S_sex<>"0" and $S_sex<>""){echo "<option selected value='$S_sex'>$Nsex</option><option value=''>-Sexe-</option>";}else { echo "<option selected value='0'>-Sexe-</option>";}?><option value="1">Femme</option><option value="2">Homme</option></select> <br><? if ($S_group=="2"){$Ngroup="Modele";}if ($S_group=="3"){$Ngroup="Photographe";}if ($S_group=="4"){$Ngroup="Makeup";}if ($S_group=="5"){$Ngroup="Styliste";}if ($S_group=="6"){$Ngroup="Coiffeur";}if ($S_group=="7"){$Ngroup="Agence";}if ($S_group=="8"){$Ngroup="Studio";}?><select id="S_group" name="S_group"><? if ($S_group<>"0" and $S_group<>""){ echo "<option selected value='$S_group'>$Ngroup</option><option value=''>-Groupe-</option>";}else { echo "<option selected value='0'>-Groupe-</option>";}?><option value="2">Modele</option><option value="3">Photographe</option><option value="4">Makeup</option><option value="5">Styliste</option><option value="6">Coiffeur</option><option value="7">Agence</option><option value="8">Studio</option></select> <br> <br /> <div style="float:left; margin-right:2px; width:49%"> <input type="checkbox" name="S_Act" id="S_Act" value="1" <? if ($S_Act=="1"){echo " checked";}?>> <b>Acteur</b><br> </div> <div role="button" class="gbutton" id="f_search">Envoi</div> <div id="d_search"></div>
Code Ajax/jQuery :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $(document).ready(function(){ $('#f_search').livequery("click", function(){ var S_sex = $('#S_sex').val(); var S_group = $('#S_group').val(); var S_act=$('input[name="S_act"]:checked').attr('value'); if (S_act!="1"){S_act='0';} // je suis obligé de faire un if sinon si c'est pas coché il me renvoi une valeur indifined $.post("search.php?Sex="+S_sex+"&Group="+S_group+"&Act="+S_act, {}, function(response){ $("#loadpage").hide(""); $("#d_search").fadeIn(""); $('#d_search').prepend($(response).fadeIn('slow')); }); });
PHP :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php $class=""; $Vsex = $_REQUEST['Sex']; $Vgroup=$_REQUEST['Group']; if ($Vgroup<>"0" and $Vgroup<>"") {$S_group=$Vgroup;} if ($S_group<>"0" and $S_group<>""){$Tgroup="group_id=$S_group";$Ugroup="group_id='$S_group' and";} if ($Vsex<>"0" and $Vsex<>"") {$S_sex=$Vsex;} if ($S_sex<>"0" and $S_sex<>""){$Tsex="sex=$S_sex";$Usex="sex='$S_sex' and";} $VAct=$_REQUEST['Act']; if ($VAct<>"0" and $VAct<>"") {$S_Act=$VAct;} if ($S_Act<>"0" and $S_Act<>""){$thm14="acteur='$S_Act' and";$th14="Act=$S_Act";} $sql = mysql_query("SELECT * FROM `pix_users` U, `pix_users_det` D where U.user_id=D.user_id and $Ugroup $Usex $thm14 $thm15 $thm16 $thm17 acc='1' and supp<>'1' $class"); $nbr=mysql_num_rows($sql); echo "N : $nbr";
Dans mon exemple, voila le résultat que j'obtiens en cliquant plusieurs fois sur ENVOI :
Alors que je ne voudrais qu'un seul résultat à la fois.N : 1679
N : 1245
N : 958
N : 239
Merci beaucoup de votre aide, parce que j'ai tenté un paquet de formulaires, je ne comprends pas.
Partager