[RESOLU] Actionner un bouton automatiquement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Actionner un bouton automatiquement

par collaud » 13 juin 2005, 10:04

De mon coté, ça fonctionne, mais tu noteras que j'ai commenté la ligne submit
ha ben voilà. c'était bêtement ça !!

Ben ça marche nickel !!!

Un Grand MERCI !!!

Master Cyrano, you're the best !! :D

par collaud » 13 juin 2005, 10:01

:P Excellent !!!

En fait j'en mettais deux (de \) pour en avoir un... pask c'est pour faire une recherche dans un répertoire...

par contre...je viens de mettre le code en place, j'ai plus le lancement automatique de la recherche après la sélection dans la list déroulante...

mais je vais voir tout de suite, c'est surement tout con.....

par Cyrano » 10 juin 2005, 18:19

BOn, j'ai réduit pas mal le code et en fait j'ai extrait ce dont j'avais besoin, je te laisse t'arranger pour reprendre ce dont tu as besoin pour ton propre code:
<html>
<head>
<title>ELSA :: Laboratoire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<Meta http-equiv="imagetoolbar" content="no">
<script language="javascript">
function copiesearch(produit)
{
	window.document.forms['form1'].elements['recherche'].value = produit;
	//window.document.forms['form1'].submit();
}
</script>
</head>
<body bgcolor="#90A2AD">
<form id="form1" method="post" action="">
  <div align="center">
  <input type="button" name="Desserts" value="Desserts" id="Desserts" onClick="copiesearch('\\\\Desserts');"><br>
  <input type="button" name="Fromage Moudon" value="Fromage Moudon" id="Fromage Moudon" onClick="copiesearch('\\\\Fromage Moudon');"><br>
  <input type="button" name="Fromages frais" value="Fromages frais" id="Fromages frais" onClick="copiesearch('\\\\Fromages frais');"><br>
  <input type="button" name="Produits frais" value="Produits frais" id="Produits frais" onClick="copiesearch('\\\\Produits frais');"><br>
  <input type="button" name="Produits grands consommateurs" value="grands consommateurs" id="Produits grands consommateurs" onClick="copiesearch('\\\\Produits grands consommateurs');"><br>
  <input type="button" name="Produits stériles" value="Produits stérile" id="Produits stérile" onClick="copiesearch('\\\\Produits stériles');"><br>
  <input type="button" name="Swiss délice" value="Swiss délice" id="Swiss délice" onClick="copiesearch('\\\\Swiss délice');"><br>
  <input type="button" name="Vinaigres" value="Vinaigres" id="Vinaigres" onClick="copiesearch('\\\\Vinaigres');"><br>
  <input type="button" name="Yogourts" value="Yogourts" id="Yogourts" onClick="copiesearch('\\\\Yogourts');"><br>
  
  <select name="select" id="produit" size="1" onChange="copiesearch(this.value);">
  <option value="\\">Faites votre choix</option>
  <option value="\\Dessert">Desserts</option>
  <option value="\\Fromage Moudon">Fromage Moudon</option>
  <option value="\\Fromages frais">Fromages frais</option>
  <option value="\\Produits frais">Produits frais</option>
  <option value="\\Produits grands consommateurs">Produits grands consommateurs</option>
  <option value="\\Produits stériles">Produits stériles</option>
  <option value="\\Swiss délice">Swiss délice</option>
  <option value="\\Vinaigres">Vinaigres</option>
  <option value="\\Yogourts">Yogourts</option>
  </select><br>
  </div>
  <table width="60%" align="center">
    <tr align="center" valign="middle">
      <td width="50%"><input name="recherche" type="text" id="recherche" value="" size="30"></td>
      <td width="50%"><input type="submit" name="Submit" value="Lancer la recherche"></td>
    </tr>
  </table>
</form>
</body>
</html>
De mon coté, ça fonctionne, mais tu noteras que j'ai commenté la ligne submit. Au lieu de 5000 fonctions: une seule et j'envoie un paramètre. Ensuite, pour reproduire exactement ce que tu avais fait, j'ai du échapper des "\" donc tu en vois 4 dans les apels de fonctions alors qu'il n'y en a que 2 dans les values des options. ça envoie donc bien deux \\ dans la zone de recherche: si tu n'en veux qu'un, mets en deux là où il y en a 4 et 1 là où il y en a 2

Tu me diras si ça marche pas de ton coté.

par Cyrano » 10 juin 2005, 17:15

bon, on peut simplifier: juste une question: as-tu impérativement besoin de ce "\\" avant un nom de produit dans tes fonctions ??

par collaud » 10 juin 2005, 16:38

dans ma liste déroulante, j'ai des attributs (Desserts, produits frais, etc...). Quand j'en sélectionne un, je veux que un mot-clé ("\\desserts", "\\produits frais", etc...) soit envoyé à une function javascript qui collera cette valeur dans le champs de recherche qui se lancera automatiquement (la fonction est ok, sauf qu'elle est duppliquée 9 fois...faudrait lui mettre des varialbes)....
c'est une astuce qui me sortira les produits d'un répertoire en fait...c'est pour ça que je fais pas en php...pask ça a rien avoir avec ma BDD, malheureusement....

<?php 
require_once('../Connections/elsa.php'); 

$colname_Recordset1 = "1"; 
if (isset($_POST['recherche'])) 
{ 
    $colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['recherche'] : addslashes($_POST['recherche']); 
} 
mysql_select_db($database_mifroma, $mifroma); 
$query_Recordset1 = "SELECT * FROM spec_produits_elsa WHERE mots_cles OR link LIKE '%". $colname_Recordset1 ."%' ORDER BY no_fcm ASC";
$Recordset1 = mysql_query($query_Recordset1, $mifroma) or die(mysql_error()); 
$row_Recordset1 = mysql_fetch_assoc($Recordset1); 
$totalRows_Recordset1 = mysql_num_rows($Recordset1); 
?> 
<html><!-- InstanceBegin template="/Templates/menu.dwt.php" codeOutsideHTMLIsLocked="false" --> 
<head> 
<!-- InstanceBeginEditable name="doctitle" --> 
<title>ELSA :: Laboratoire</title> 
<SCRIPT language="javascript"> 
function copiesearch1() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Desserts" 
    document.forms['form1'].submit(); 
} 
function copiesearch2() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Fromage Moudon" 
    document.forms['form1'].submit(); 
} 
function copiesearch3() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Fromages frais" 
    document.forms['form1'].submit(); 
} 
function copiesearch4() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Produits frais" 
    document.forms['form1'].submit(); 
} 
function copiesearch5() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Produits grands consommateurs" 
    document.forms['form1'].submit(); 
} 
function copiesearch6() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Produits stériles" 
    document.forms['form1'].submit(); 
} 
function copiesearch7() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Swiss délice" 
    document.forms['form1'].submit(); 
} 
function copiesearch8() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Vinaigres" 
    document.forms['form1'].submit(); 
} 
function copiesearch9() 
{ 
    document.forms["form1"].elements["recherche"].value = "\\Yogourts" 
    document.forms['form1'].submit(); 
} 
</SCRIPT> 
<!-- InstanceEndEditable --> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<Meta http-equiv="imagetoolbar" content="no"> 
<!-- InstanceBeginEditable name="head" --> 
<!-- InstanceEndEditable --> 
<link href="../css/infostyle.css" rel="stylesheet" type="text/css"> 
</head> 
<body bgcolor="#90A2AD"> 
<table width="100%" height="100%" align="center"> 
  <tr> 
    <td height="701" align="center" valign="top"><a name="haut"></a> <br> 
      <br> 
      <table width="700" height="580" border="1" align="center" bordercolor="#000000" bgcolor="#FFFFFF"> 
        <tr> 
          <td width="100%" height="100%" align="center" valign="top"><table width="100%" border="1" align="center" cellspacing="0" bordercolor="#CCCCCC"> 
              <tr> 
                <td width="82%" align="center" valign="middle" bgcolor="#90A2AD" class="noir4"><!-- InstanceBeginEditable name="titre" --> 
                  <p>Laboratoire - Spécification des produits</p> 
                  <!-- InstanceEndEditable --> 
                </td> 
                <td width="18%"><div align="right"><a href="../index.php"><img src="../images/logo_elsa.gif" width="116" height="34" border="0"></a></div></td> 
              </tr> 
            </table> 
            <table width="96%" height="525"> 
              <tr align="center" valign="middle"> 
                <td width="100%" height="51"><!-- InstanceBeginEditable name="recherche" --><span class="noir2gras">Liste 
                  des produits</span><!-- InstanceEndEditable --> </td> 
              </tr> 
              <tr valign="top"> 
                <td height="466"><!-- InstanceBeginEditable name="produits" --> 
                  <hr> 
                  <div align="justify"><span class="noir2"><br> 
                  La liste ci-dessous contient tous les produits de ELSA. 
                  La colonne de gauche correspond au numéro FCM et celle 
                  de droite à la désignation du produit. Si vous 
                  cliquez sur le lien du numéro FCM, vous ouvrirez la 
                  fiche de spécification du produit correspondant (format 
                  Excel).<br> 
                  Grâce au moteur de recherches, vous avez la possibilité 
                  de trouver plus rapidement un produit. Il vous suffit de saisir 
                  un seul mot clé et de cliquer sur le bouton "Lancer 
                  la recherche". Les mots clés peuvent être 
                  soit une partie du numéro FCM (2101, 025, 001, etc...), 
                  soit un mot de la désignation (fraise, séré, crème, etc..). Vous pouvez également ne saisir 
                  qu'une ou plusieurs lettre(s) d'un mot, ou chiffre(s) d'un 
                  nombre, la recherche sera par contre moins précise 
                  et par conséquent plus vaste. Le moteur ne prend pas 
                  en compte les caratères à accents (grave, aigue, 
                  etc...). La liste de bouton vous permet de faire afficher en un clic tous les produits de la catégorie. </span><br> 
                  <br> 
                  <hr> 
                  </div> 
                  <form name="form1" id="form1" method="post" action=""><div align="center"> 
                    <p> 
                    <input type="button" name="Desserts" value="Desserts" id="Desserts" onClick="copiesearch1()"> 
                    <input type="button" name="Fromage Moudon" value="Fromage Moudon" id="Fromage Moudon" onClick="copiesearch2()"> 
                    <input type="button" name="Fromages frais" value="Fromages frais" id="Fromages frais" onClick="copiesearch3()"> 
                    <input type="button" name="Produits frais" value="Produits frais" id="Produits frais" onClick="copiesearch4()"> 
                    <input type="button" name="Produits grands consommateurs" value="grands consommateurs" id="Produits grands consommateurs" onClick="copiesearch5()"> 
                    <input type="button" name="Produits stériles" value="Produits stérile" id="Produits stérile" onClick="copiesearch6()"> 
                    <input type="button" name="Swiss délice" value="Swiss délice" id="Swiss délice" onClick="copiesearch7()"> 
                    <input type="button" name="Vinaigres" value="Vinaigres" id="Vinaigres" onClick="copiesearch8()"> 
                    <input type="button" name="Yogourts" value="Yogourts" id="Yogourts" onClick="copiesearch9()"> 
                    </p> 
                    <p> 
               <select name="select" size="1" onChange="copiesearch1()"> 
                    <option value="">Faites votre choix</option> 
					<option value="copiesearch1()">Desserts</option> 
                    <option value="">Fromage Moudon</option> 
                    <option value="">Fromages frais</option> 
                    <option value="">Produits frais</option> 
                    <option value="">Produits grands consommateurs</option> 
                    <option value="">Produits stériles</option> 
                    <option value="">Swiss délice</option> 
                    <option value="">Vinaigres</option> 
                    <option value="">Yogourts</option> 
</select> 
                    marche pas encore ! </p> 
                    </div> 
                    <table width="60%" align="center"> 
                      <tr align="center" valign="middle"> 
                        <td width="50%"><input name="recherche" type="text" id="recherche" value="" size="30"></td> 
                        <td width="50%"><input type="submit" name="Submit" value="Lancer la recherche"></td> 
                      </tr> 
                    </table> 
                    <p align="center"><a href="login.php" class="noir1">Administration 
                    de la base</a></p> 
                    <hr> 
                    <br> 
                    <table width="100%" border="1" cellspacing="0" bordercolor="#CCCCCC"> 
                      <tr valign="middle" bgcolor="#90A2AD" class="noir2gras"> 
                        <td width="40%" bgcolor="#90A2AD">&nbsp;N° FCM</td> 
                        <td width="60%">&nbsp;Désignation du produit</td> 
                      </tr> 
<?php 
while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) 
{ 
    ?> 
                      <tr valign="middle" class="noir2"> 
                        <td width="40%" height="21"><a href="<?php echo $row_Recordset1['link']; ?>" target="_blank" class="noir2">&nbsp;<?php echo $row_Recordset1['no_fcm']; ?></a></td> 
                        <td width="60%">&nbsp;<?php echo $row_Recordset1['designation']; ?></td> 
                      </tr> 
<?php 
} 
?> 
                    </table> 
                  </form> 
                  <p align="center"><a href="#haut" class="noir2">Retour en haut</a></p> 
                  <p align="center">&nbsp;</p> 
<!-- InstanceEndEditable -->                </td> 
              </tr> 
            </table> 
          </td> 
        </tr> 
      </table></td> 
  </tr> 
</table> 
</body> 
<!-- InstanceEnd --></html> 
<?php 
mysql_free_result($Recordset1); 
?> 

par Cyrano » 10 juin 2005, 16:32

... j'ai autant de script "copie et lance recherche" que d'attributs dans ma liste déroulante...
Tu peux montrer un exemple, j'ai du mal à suivre...

par collaud » 10 juin 2005, 16:30

salut !!

Je reviens sur mon problème...j'avous ne pas avoir beaucoup cherché (faute de temps), mais je n'ai quand meme rien trouvé pour mon cas...

une liste déroulante, quand on sélectionne un événement, ça utilise une fonction qui copie un texte dans mon champ de recherche et qui lance le moteur de recherche...

pour l'instant, en plus, j'ai autant de script "copie et lance recherche" que d'attributs dans ma liste déroulante...j'sais pas comment faire pour automatiser et n'en faire qu'une seule...

c'est dur.. :?

par collaud » 03 juin 2005, 16:29

?....nnaan ?

par collaud » 03 juin 2005, 11:30

....merci pour le lien, le site à l'air intéressant ! Et j'avais déjà promis sur ce topic que j'allais me mettre au javascript de A à Z d'ici quelques semaines, mais là, pour ce dernier problème, vous voulez pas "plus que me dirigez" ???....nnnaaann ?.....svp....

par Cyrano » 03 juin 2005, 11:22

Pour les tuto en JavaScript, je te recommande ce site, tu y trouveras des informations beaucoup plus pertinentes que mes conseils en la matière :P

par collaud » 03 juin 2005, 10:39

bon, re-résumons...

dans ma liste déroulante, j'ai des attributs (Desserts, produits frais, etc...). Quand j'en sélectionne un, je veux que un mot-clé ("\\desserts", "\\produits frais", etc...) soit envoyé à une function javascript qui collera cette valeur dans le champs de recherche qui se lancera automatiquement (la fonction est ok, sauf qu'elle est duppliquée 9 fois...faudrait lui mettre des varialbes)....
c'est une astuce qui me sortira les produits d'un répertoire en fait...c'est pour ça que je fais pas en php...pask ça a rien avoir avec ma BDD, malheureusement....

mais là, je sèche...et y a pas de tutos qui m'aide...c'est un niveau plus haut que les tutos de base.....

par collaud » 03 juin 2005, 10:28

Dieu te bénisse !!! C'est bon pour l'affichage, tout est là désormais !!!

Merci-Merci-Merci-Merci-Merci-Merci-Merci-...

pour les select, ça donne comment alors, ça ? :
<select name="select" size="1" onChange="this.submit();"> 
                    <option value="">Desserts</option>
                    <option value="">Fromage Moudon</option>
                    <option value="">Fromages frais</option>
                    <option value="">Produits frais</option>
                    <option value="">Produits grands consommateurs</option>
                    <option value="">Produits stériles</option>
                    <option value="">Swiss délice</option>
                    <option value="">Vinaigres</option>
                    <option value="">Yogourts</option>
</select>

par Cyrano » 03 juin 2005, 10:21

Je viens de voir un détail qui devrait régler ton problème d'affichage : modifie la requête en début de script:
au lieu de
$query_Recordset1 = sprintf("SELECT * FROM spec_produits_elsa WHERE mots_cles OR link LIKE '%%%s%%' ORDER BY no_fcm ASC", $colname_Recordset1); 
Mets plutôt
$query_Recordset1 = "SELECT * FROM spec_produits_elsa WHERE mots_cles OR link LIKE '%". $colname_Recordset1 ."%' ORDER BY no_fcm ASC";
Il y a des conflits de %%%.

Pour les balises options, je te recommande de les fermer quand même, c'est syntaxiquement valide et si tu dois un jour passer au XHTML, ce sera même obligatoire par contre tu dois leur mettre un attribut value="" qui correspond au contenu de la balise, c'est la valeur que tu récupèreras dans $_POST: en ne mettant rien, tu ne récupères rien..

par collaud » 03 juin 2005, 10:19

oulala...je patauge...

j'ai vu que je pouvais supprimer la fermeture des balises <option>
<select name="select" size="1" onChange="this.submit();"> 
                    <option>Desserts
                    <option>Fromage Moudon
                    <option>Fromages frais
                    <option>Produits frais
                    <option>Produits grands consommateurs
                    <option>Produits stériles
                    <option>Swiss délice
                    <option>Vinaigres
                    <option>Yogourts
</select>
mais ce onChange="this.submit();" veut rien dire...je comprends pas

par collaud » 03 juin 2005, 09:52

là je regarde pour fondre mes functions "copiesearch" en une seule et de les faire marcher avec la liste déroulante...mais je galère...

(pask à la limite, le prob de l'affichage de tous les produits est moins grave...)

je cherche sur le web, mais...