case coché affiche formulaire

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 : case coché affiche formulaire

par rastacouaire » 13 janv. 2009, 17:02

alors alors, désolée pour tout ce retard. des problèmes plus important on fait que je ne pouvais m'occuper du site jusqu'ici :)

mon code fonctionne, mais qu'à moitié.. forcément, ça serait trop simple sinon :roll:


alors en ce qui concerne l'affiche du formulaire suivant la valeur de mon $site_id, tout fonctionne très bien

le code que je fais est le suivant :
if((isset($_GET['site_id'])) && ($_GET['site_id'] == "4" ))
{

	
?>
<? print ("<form action='' method='post' name='form2' id='form2'>");
?>

//là je mets tout mon formulaire qui correspond
en revanche, là où ça merdouille, c'est la valeur que prend $site_id et qui est envoyé.

quelque soit l'élément que je sélectionne, $site_id est toujours égale à 4. embêtant, car il n'arrive pas à transmettre les bonnes informations.

Avez-vous une idée où est le problème?

merci :)

par rastacouaire » 09 janv. 2009, 17:57

ok, je vais tester tout ça et je dirais ce qu'il en est :)

merci beaucoup :D

et voui j'aurais une préférence pour POST et non GET pour transmettre les données :)

par guilt92 » 09 janv. 2009, 15:32

En fait cela dépend...

Si chaque case a cocher à un name spécifique alors si elle est cochée elle sera transmise et récupérable via $_POST["name"] d'où le isset() pour savoir si ca existe ou pas. Donc si il y 3 valeurs tu auras un $_POST["fr"], $_POST["en"] et $_POST["ch"] qui existeront donc tu saura qu il a coché 3 cases

Si tu as un tableau de nom name=valeur[] alors la valeur posté $_POST["valeur"] sera un tableau contenant toutes les values des cases cochées ($_POST["valeur"][0] = "fr", $_POST["valeur"][1]="en" ...)

Effectivement dans le cas d'un passage par url il faut utiliser $_GET pour récupérer les valeurs (et mettre method=get dans le formulaire) mais pourquoi ne pas préférer post ?

par rastacouaire » 09 janv. 2009, 12:50

ah oui, le truc tout con, jsuis bête..


sinon, ce n'est pas moi qui est fait le code, je viens d'arriver et le site était déjà fait par une autre personne, qui a été retouché par une autre personne...

fin bref, le bordel.. ^^


par contre, je ne vois pas comment je peux transmettre l'information dans mon url.

parce que si je fais ça comme url :
hydrus_utils_redirect("cataloguecopy2.php5?ref=".$_POST['prod_ref']."&nom=".$_POST['prod_nom']."&id=".$_GET['id']."&site_id=".$list_pays[$i][0]."");

il n'entrera pas en mémoire toutes les cases qui ont pu être coché.

il peut en prendre une, mais si j'en coche 3, il n'en saura rien ...

et en plus, si je n'abuse, pour transmettre dans une url il est préférable que ce soit sous la variable POST ou GET non?

par guilt92 » 08 janv. 2009, 18:05

Je comprend pas pourquoi faire faire un if else si c'est pour avoir la meme chose dans les deux cas... ;)

Bon sinon l'idée est donc la suivante : un formulaire avec un bouton de validation pour choisir les pays qui amene vers une autre page dont le formulaire dépendra des pays sélectionnés.

Exemple ::

page etape1.php

Code : Tout sélectionner

<form method="POST" name="pays" action="etape2.php"> <input type="checkbox" value="France" name="France"/>France<br/> <input type="checkbox" value="USA" name="USA"/>USA<br/> <input type="submit" value="Valider"/> </form>
(ici en statique mais tu peux adapter avec ton code)

la page lorsque l'on valide l'étape 1 :

etape2.php
<form name="etape2" action="validation.php" method="post">
<?php
if(isset($_POST["France"])) {
      //code si la France est cochée
      }
if(isset($_POST["USA"])) {
      //code si USA est coché
      }
?>
</form>
J espere que cela t eclairera

par rastacouaire » 08 janv. 2009, 17:00

scuzez, le post d'avant c'est moi..

j'avais oublié de me connecter... :roll: :oops: :oops:

par Invité » 08 janv. 2009, 16:59

alors, voici comment j'affiche mes pays dans mon premier formulaire :
<td><h5 class="Style2">Pays concernés : </h5></td>
<td>
<?
$list_pays = hydrus_site_list(-1,$bdd);
for($i=0;$i<count($list_pays);$i++)
{
	if($_POST['site'.$list_pays[$i][0].''] == true)
	{
	   print("<input type='checkbox' name='site".$list_pays[$i][0]."' />".$list_pays[$i][1]."<br/>");	
	}
	else
	{
	   print("<input type='checkbox' name='site".$list_pays[$i][0]."' />".$list_pays[$i][1]."<br/>");		
	}
}
?></td>
avec ceci je ne peux pas envoyer les différentes cases qui sont cochées. fin je peux peut-être, mais je n'arrive pas à voir comment... :|

par edison1986 » 02 janv. 2009, 15:57

Bonjour,

Je ne suis pas sur d'avoir très bien compris ton problème, mais si c'est ce que je pense.

Dans le deuxième formulaire tu reçois les infos sur le pays et tu fais des if pour afficher les champs correspondant.

Par exemple :
if(isset($_POST['france']))
{
   echo("<input type=\"text\" name=\"test\" value=\"\" />");
}

case coché affiche formulaire

par rastacouaire » 02 janv. 2009, 15:25

Bonjour,

Je souhaitais avoir une information.

voilà, j'ai un formulaire où je rentre des données et je coches des cases pour savoir quels pays sont concernés.

j'aimerais que, suivant la case coché, une partie du formulaire s'affiche.

par exemple si la case france est coché, le formulaire par la suite affichera les champs à remplir pour la france.

si les cases france et usa sont cochés, le formulaire affichera les champs pour la france et usa.


le truc, c'est que mes cases à cocher sont sur une page et les champs à afficher sont sur une autre page dans un autre formulaire.

selon vous, est-ce que c'est possible? si oui, quel est le cheminement?

merci :)