Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2127 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Fonction avec une checkbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction avec une checkbox

n°1924636
DonQuiShoo​t
Posté le 16-09-2009 à 21:18:45  profilanswer
 

Bonjour,
 
J'ai un petit soucis, j'aimerais savoir un pti truc :  
 
Enfaite je suis en train d'utiliser une checkbox qui a pour utilité : FORMULAIRE -> On a un question -> SI on coche => Exécution d'une fonction X / SI on décoche => La fonction X ne s'exécute pas !
 
J'ai testé plusieurs possibilités sans succès, pourtant je pense que c'est pas si difficile que ça mais impossible de faire quelque chose de correcte :/
 
Si vous avez une petite idée pour l'utilisation d'un bout de code ca serais super sympa ;)  
 
Merci d'avance,
 
Donqui  ;)

mood
Publicité
Posté le 16-09-2009 à 21:18:45  profilanswer
 

n°1924647
stealth35
Posté le 16-09-2009 à 22:17:29  profilanswer
 

ta fais quoi comme code pour l'instant ?

n°1924907
DonQuiShoo​t
Posté le 17-09-2009 à 18:49:29  profilanswer
 

stealth35 a écrit :

ta fais quoi comme code pour l'instant ?


 

Code :
  1. <?php
  2. mysql_connect("host", "db", "mdp" );
  3. mysql_select_db("123" ); // Sélection de la base  
  4. $reponse = mysql_query("SELECT * FROM wsite" ); // Requête SQL
  5. // On fait une boucle pour lister tout ce que contient la table :  
  6. while ($donnees = mysql_fetch_array($reponse) )
  7. {
  8. ?>
  9. <form method="post" action="result.php">
  10.   <input name="choix" type="checkbox" value="choix" checked />
  11.   <a href="<?php echo $donnees['url']; ?>" title="<?php echo $donnees['site_name']; ?>" target="_blank"><img src="<?php echo $donnees['img']; ?>" alt="<?php echo $donnees['site_name']; ?>" name="" width="85" height="24" align="absbottom" /></a>
  12.   </form>
  13. <?php
  14. }
  15. mysql_close(); // Déconnexion de MySQL
  16. ?>
  17.       <center><form method="post" action="result.php">
  18.         <p>
  19.     </p>
  20.     <form id="form1" method="post" action="submit">
  21.       <p>
  22.         <label>
  23.               <input type="text" name="recherche" />
  24.               <br />
  25.               <br />
  26.           <input type="submit" name="button" id="button" value="Recherche" />
  27.             </label>
  28.           </p>
  29.     </form>
  30.     </center>


 
La recherche fonctionne (j'ai bien le résultat de ma recherche dans result.php) mais enfaite la recherche est effectué sur une liste de site (inscrit dans la DB) et j'aimerais que la recherche se fasse qu'avec les sites sélectionnés !  
Enfaite j'aimerais que la page result recoive l'info "Coché" ou "Pas coché" et si coché : Affichage de la recherche avec ce site, la recherche sur CE site ne s'affiche pas !
 
Pour infos : Les résultats de recherche s'affiche par onglet (création d'un onglet/site) et affichage d'une iframe contenant la page de recherche du site :

Code :
  1. <iframe src="http://blabla.php?recherche=<?php echo $_POST['recherche']; ?>" height="600" width="100%" name="myFrame" id="myFrame"></iframe>


 

n°1924965
stealth35
Posté le 18-09-2009 à 01:57:40  profilanswer
 

je vois c'est tres chiant pour ca les checkbox,  
avant d'envoyer ton forumaire, faut parser les valeurs avec javascript
 
tu regarde si c'est  "checked" ou pas   si  (ten mieux),  sinon  tu met la valeur du checkbox  a 0 et checked sur "true",  
 
ducouop ca va fair comme si on avai tout coché mais que les valeurs des checkbox etait differente
 
sinon au lieu de fair plein de formulaire, je te conseil de faire un seul, et validé tout ca avec du javascript

n°1924966
tyesbo
Posté le 18-09-2009 à 02:57:38  profilanswer
 

Salut,
 
Deja ligne 8 a 16, inutile d'avoir 50 formulaires avec la meme action.
 

Code :
  1. <form method="post" action="result.php">
  2. while ($donnees = mysql_fetch_array($reponse) )
  3. {
  4. ?>
  5. <input name="choix" type="checkbox" value="choix" checked />
  6. <a href="<?php echo $donnees['url']; ?>" title="<?php echo $donnees['site_name']; ?>" target="_blank"><img src="<?php echo $donnees['img']; ?>" alt="<?php echo $donnees['site_name']; ?>" name="" width="85" height="24" align="absbottom" /></a>
  7. <?php
  8. }
  9. ?>
  10. </form>
  11. <?php


 
Ensuite, si tu veux réaliser des actions en fonction des checkbox coché, faut leur donner un nom different à chaque, sinon on ne pourra pas les différencier. (ou peut être veux-tu que la fonction s'execute au moment ou l'on coche la case?)
 

Code :
  1. <form method="post" action="result.php">
  2. while ($donnees = mysql_fetch_array($reponse) )
  3. {
  4. ?>
  5. <input name="choix[<?php echo $donnees['id']?>]" type="checkbox" value="choix" checked />
  6. <a href="<?php echo $donnees['url']; ?>" title="<?php echo $donnees['site_name']; ?>" target="_blank"><img src="<?php echo $donnees['img']; ?>" alt="<?php echo $donnees['site_name']; ?>" name="" width="85" height="24" align="absbottom" /></a>
  7. <?php
  8. }
  9. ?>
  10. </form>
  11. <?php


 
Après je te conseillerai plutot d'utiliser un framework js (jquery?), ca évitera de réinventer la roue. (Avec une requête en ajax au lieu d'une iframe aussi ;) , plus simple, plus récent, et plus beau)

n°1925358
DonQuiShoo​t
Posté le 20-09-2009 à 16:54:20  profilanswer
 

Merci pour ces réponses ;)
 
Je vais voir tout ça ! :)

n°1925372
DonQuiShoo​t
Posté le 20-09-2009 à 18:53:23  profilanswer
 

Autre question :)
 
J'aimerais que pour ma liste de site, en gardant ma boucle, je puisse par exemple faire remonter un site ne tete de liste :
 
Voici ma structure de table :

Code :
  1. CREATE TABLE `wsite` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `site_name` varchar(20) default NULL,
  4.   `url` varchar(100) default NULL,
  5.   `url_s` varchar(100) default NULL,
  6.   `email` varchar(50) default NULL,
  7.   `img` varchar(100) default NULL,
  8.   PRIMARY KEY  (`id`)
  9. ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;


 
Pour exemple :
 
En temps normale :
 
ID=1=SiteA
ID=2=SiteB
ID=3=SiteC
ID=4=SiteD
 
Et j'aimerais pouvoir remonter un site tel que :
 
ID=1=SiteD
ID=2=SiteA
ID=3=SiteB
ID=4=SiteC
 
Et que donc pour l'affichage, le site ayant l'id 1 soit affiché en premier, le 2 en deuxième, etc ...
 
J'espère avoir été assez claire ^^"

Message cité 1 fois
Message édité par DonQuiShoot le 20-09-2009 à 18:55:38
n°1925373
DonQuiShoo​t
Posté le 20-09-2009 à 18:54:43  profilanswer
 

dsl double post


Message édité par DonQuiShoot le 20-09-2009 à 18:56:06
n°1925390
tyesbo
Posté le 20-09-2009 à 20:48:13  profilanswer
 

Le mieu ca serai d'avoir un champ "ordre" par exemple, qui permettrai de classer ta liste de site comme tu le souhaites avec des numéros. Il suffit ensuite de faire un ORDER BY sur ton champ ordre. Sinon l'autre option est de modifier les id mais ce n'est pas du tout fait pour ça.

n°1925393
DonQuiShoo​t
Posté le 20-09-2009 à 21:23:05  profilanswer
 

tyesbo a écrit :

Le mieu ca serai d'avoir un champ "ordre" par exemple, qui permettrai de classer ta liste de site comme tu le souhaites avec des numéros. Il suffit ensuite de faire un ORDER BY sur ton champ ordre. Sinon l'autre option est de modifier les id mais ce n'est pas du tout fait pour ça.


 
Et comment faire ensuite pour que le 1er site devienne deuxième, le deuxième deviendrais troisième et ainsi de suite ?

mood
Publicité
Posté le 20-09-2009 à 21:23:05  profilanswer
 

n°1925424
tyesbo
Posté le 21-09-2009 à 00:02:27  profilanswer
 

Après c'est toi qui décide de l'ordre de l'affichage des sites. Tu peux mettre la valeur 0 à tout les sites dans la colonne "ordre", puis ceux que tu veux mettre en premier tu mets un numéro plus grand que 0. (10 20 30 40 etc..) Plus le nombre est grand, plus la priorité sera grande. Dans la requète SQL, il suffit de rajouter:
 

Code :
  1. $reponse = mysql_query("SELECT * FROM wsite ORDER BY ordre DESC" );

n°1925616
DonQuiShoo​t
Posté le 21-09-2009 à 17:50:23  profilanswer
 

Exacte ! Je comprend nikel :) Merci encore Tyesbo !

n°1925639
DonQuiShoo​t
Posté le 21-09-2009 à 20:35:52  profilanswer
 

Dernier des derniers petits soucis,  
 
Voici mon code :  
 

Code :
  1. <div id="TabbedPanels1" class="TabbedPanels">
  2.   <ul class="TabbedPanelsTabGroup">
  3. <?
  4. while ($donnees = mysql_fetch_array($reponse))
  5. {
  6. echo '<li class="TabbedPanelsTab" tabindex="0"><a href="'. $donnees['url'] .'" title="'. $donnees['site_name'] .'" target="_blank"><img src="'. $donnees['img'] .'" alt="'. $donnees['site_name'] .'" name="" width="85" height="24" align="absbottom" /></a></li>';
  7. ?>
  8. </ul>
  9.   <div class="TabbedPanelsContentGroup">
  10.   <?
  11. echo '<div class="TabbedPanelsContent"><center>'. $donnees['site_name'] .'</center></div>';
  12. }
  13. ?>
  14.   </div>
  15. </div>


 
Malheureusement, il ne me fait qu'un seul onglet avec un seul contenu :/  
 
Et quand je met le "}" après les deux derniers "</div>", il met fait un premier onglet avec un premier contenue concernant à un premier site et il revient à la ligne et me fait un deuxième onglet avec un deuxième contenu pour un deuxième site ! (Logique il refait deux fois le module d'onglets mais cela prouve qu'il reconnait bien les deux sites pour le moment inscrit dans la db et respecte l'ordre d'affichage ;))
 
(Pour le contenue j'ai mis "'. $donnees['site_name'] .'" pour les tests mais il changera, inutile d'y faire attention :) )
 
UNE IDÉE ?  :pt1cable:  
 

n°1925691
tyesbo
Posté le 22-09-2009 à 00:54:08  profilanswer
 

oui 2 problèmes.
 
1. L'ouverture de la liste "<ul>" est en dehors de la boucle, et la fermeture est dans la boucle (ligne 10). Dans ton exemple je suppose que tu veux fermer ta liste à la fin une fois la bouclie finie.
 
2. Tu ouvres une "div" dans la boucle (ligne 11), et tu la fermes en dehors de la boucle. (ligne 16)(un peu le même problème que dans le 1.)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Fonction avec une checkbox

 

Sujets relatifs
Calcul de l'inverse d'une fonction de répartitionCATIA V5 - Automatiser la fonction search
PHP - fonction escapeshellcmd()Fonction pour établir le classement d'un coureur
[VBA] Programmer un indicateur coloré en fonction d'une valeurfonction SQL qui fonctionne impec sous phpmyadmin mais pas en php !
cocher automatiquement 1 checkbox en fonction des données d'1 listboxCocher une checkbox avec une fonction JS
[Résolu] Insérer dans un champ texte en fonction de checkboxfonction javascript pour cocher tout les checkbox d'un form ?
Plus de sujets relatifs à : Fonction avec une checkbox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR