Javascript : formulaire sans bouton

Résolu/Fermé
Shankara Messages postés 27 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 9 février 2019 - 4 févr. 2007 à 15:13
Shankara Messages postés 27 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 9 février 2019 - 5 févr. 2007 à 11:38
Bonjour à tous !
J'ai fait en PHP un formulaire comprenant 4 boutons radio. Lorsque l'un de ces boutons est sélectionné, une liste d'élément provenant de ma base de données et dépendante du choix du bouton s'affiche en-dessous du formulaire. Pour l'instant, mon formulaire contient un bouton de validation. Mon 3è bouton radio est sélectionné par défaut et quand la page se charge, la liste d'élément qui en dépend s'affiche aussi. Ensuite, à chaque fois que je choisis un autre bouton radio et que je valide, la liste d'élément s'adapte à mon choix.
Ce que je voudrais, c'est que la validation s'effectue sans passer par le bouton "Valider" dont je veux me débarrasser.
On m'a dit de passer par le Javascript. J'ai été sur un site pour apprendre le Javascript car je n'en ai jamais fait mais je n'ai pas trouvé de solution adaptée. En effet, seul l'événement Click concerne les boutons radio visiblement. Si j'écris un code avec Onclick dans chaque bouton, comment faire pour que la liste d'éléments correspondant au bouton sélectionné par défaut s'affiche au chargement de la page (le bouton n'est pas clické)?
Quelqu'un pourrait m'aider SVP ?
J'espère avoir été assez claire ...

5 réponses

plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 27
4 févr. 2007 à 18:44
<input type="radio" onClick="document.forms.nom_de_ton_formulaire.submit()" ... />
nom_de_ton_formulaire est le nom que tu as mis dans ta balise form :
<form name="nom_de_ton_formulaire" ...>
2
Shankara Messages postés 27 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 9 février 2019 4
4 févr. 2007 à 19:02
Merci plop!
Question suivante ;) :
Comment récupérer la sélection pour l'utiliser dans mon script PHP ? Est-ce toujours $_POST["guide"] ? ("guide" est le nom de mes boutons radio)
0
plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 27
5 févr. 2007 à 02:31
Oui, ainsi :
<input type="radio" name="guide" value="1" /> Choix 1
<input type="radio" name="guide" value="2" /> Choix 2
<input type="radio" name="guide" value="3" /> Choix 3

Tu peux récupérer $_POST['guide'] qui vaudra 1 ou 2 ou 3 selon le cas.
0
Shankara Messages postés 27 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 9 février 2019 4
5 févr. 2007 à 09:04
J'ai toujours un problème avec le bouton qui doit être sélectionné par défaut. Du fait qu'il n'est pas clické au chargement de la page, j'ai un message d'erreur. Voici mon code :

<center><form name="choix_guide" action="admin_fonctions.php" method="POST">
<table width=40% border=1 cellspacing=1 cellpadding=8>
	<tr>
		<td colspan=2>Liste des guides</td>
	</tr>
	<?php
	$guides=array
				(1=>"Guide des Services",
				 2=>"Guide Industriel",
				 3=>"Guide de la Filière Pêche",
				 4=>"Guide des Imports/Exports"
				);
	$j=1;
	
	
	/***   Construction des boutons radio   ***/
	foreach ($guides as $i)
	{
		/***   Si aucun choix n'a encore été fait, le guide FP est sélectionné par défaut   ***/
		if ($j==3) :
			echo '<tr><td>'.$j.'</td><td><input type="radio" name="guide" value="'.$j.'" checked onClick="document.forms.choix_guide.submit()">'.$i.'</td></tr>';
		else :
			echo '<tr><td>'.$j.'</td><td><input type="radio" name="guide" value="'.$j.'" onClick="document.forms.choix_guide.submit()">'.$i.'</td></tr>';
		endif;
		
		$j++;
	}
	echo '</table></form></center><br><br>';

<center><table width=40% border=1 cellspacing=1 cellpadding=8>

	<?php
	
	/***   Requête donnant les fonctions associées au guide choisi   ***/
	if (isset($_POST["guide"])) :
	$req="SELECT distinct f.fonction
		  FROM fonction AS f
		  WHERE f.guide='".$_POST["guide"]."'
		  ORDER BY 1";
	$result=mysql_query($req) or die ('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
	
	/***   Titre du tableau en fonction du guide choisi   ***/
	$nom_tab=htmlentities ('Fonctions associées au').' '.$guides[$_POST["guide"]];
	
	/******************************************************************************************************************************************************************************************/
	/***   Fonction liste_tab_fonctions :
		Paramètres :
			$resultat : résultat de mysql_query($requête)
			$first_line : titre du tableau
		Renvoie les chaînes de caractères correspondant à chaque ligne du tableau. Le tableau est prévu pour qu'une cellule soit créée pour chaque champ de la requête.
			1) Construction de la ligne contenant le titre du tableau => fusion de la cellule sur (la cellule contenant le numéro de la ligne ($i) + les cellules contenant les champs + la cellule contenant le lien "Modifier" 
			    + la cellule contenant le lien "Supprimer" + la cellule contenant le lien "Monter" + la cellule contenant le lien "Descendre")
			2) Construction des lignes du tableau => le nombre de lignes correspond au nombre d'enregistrements de la requête
			3) Construction de la ligne contenant le bouton "Ajouter" => fusion de la cellule sur (les cellules contenant les champs + la cellule contenant le lien "Modifier"  + la cellule contenant le lien "Supprimer" + la cellule
			contenant le lien "Monter" + la cellule contenant le lien "Descendre")   ***/
	/******************************************************************************************************************************************************************************************/
	function liste_tab_fonctions ($resultat,$first_line)
	{
		$nb_champs=mysql_num_fields($resultat);
		$max1=$nb_champs+1;
		$max2=$nb_champs+4;
		$max3=$nb_champs+5;
		$L=mysql_num_rows($resultat);
		if ($L==0) :
			$i=0;
			/***   Si aucun enregistrement n'est renvoyé, le nombre de champs est assimilé à 1 (celui qui affiche "Aucun élément") et on ne prévoit évidemment pas de cellules pour les liens "Modifier", "Supprimer",
			"Monter" et "Descendre"   ***/
			echo '<tr><td width=100% colspan='.$max1.'>'.$first_line.'</td></tr>';
			echo '<tr><td></td><td>Aucun &eacute;l&eacute;ment</td></tr>';
			echo '<td></td><td align=right colspan='.$nb_champs.'><input type="submit" name="B_Ajouter" value="Ajouter"></td></tr>';
		else :
			$i=1;
			echo '<tr><td width=100% colspan='.$max3.'>'.$first_line.'</td></tr>';
			while ($row=mysql_fetch_array($resultat)) :
				echo '<tr><td>'.$i.'</td>';
				for ($C=0;$C<mysql_num_fields($resultat);$C++) :
					echo '<td>'.stripslashes(htmlentities(strtoupper($row[$C]))).'</td>';
				endfor;
				$i++;
				echo '<td>Modifier</td><td>Supprimer</td><td>Monter</td><td>Descendre</td></tr>';
			endwhile;
			echo '<td></td><td align=right colspan='.$max2.'><input type="submit" name="B_Ajouter" value="Ajouter une fonction"></td></tr>';
		endif;
	}
	
	
	liste_tab_fonctions ($result,$nom_tab);
	endif;
	
	?>
</table></center>



Désolée pour la mise en forme mais c'est en copiant ici que ça bouge tout.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Shankara Messages postés 27 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 9 février 2019 4
5 févr. 2007 à 11:38
Finalement j'ai trouvé la solution pour mon dernier problème. Mon code est devenu le suivant pour le premier tableau (le second fonctionnait correctement) :
<center><form name="choix_guide" action="admin_fonctions.php" method="POST">
<table width=40% border=1 cellspacing=1 cellpadding=8>
	<tr>
		<td colspan=2>Liste des guides</td>
	</tr>
	<?php
	$guides=array
				(1=>"Guide des Services",
				 2=>"Guide Industriel",
				 3=>"Guide de la Filière Pêche",
				 4=>"Guide des Imports/Exports"
				);
	$j=1;
	
	/***   Construction des boutons radio   ***/
	foreach ($guides as $i)
	{
		/***   Si aucun choix n'a encore été fait, le guide FP est sélectionné par défaut   ***/
		if (!isset($_POST["guide"])) :
			if ($j==3) :
				echo '<tr><td>'.$j.'</td><td><input type="radio" name="guide" value="'.$j.'" checked
				onClick="document.forms.choix_guide.submit()">'.$i.'</td></tr>';
				$_POST["guide"]=$j;
			else :
				echo '<tr><td>'.$j.'</td><td><input type="radio" name="guide" value="'.$j.'"
				onClick="document.forms.choix_guide.submit()">'.$i.'</td></tr>';
			endif;
		/***   Si un choix a été fait, le guide choisi reste sélectionné   ***/
		elseif ($j==$_POST["guide"]) :
			echo '<tr><td>'.$j.'</td><td><input type="radio" name="guide" value="'.$j.'" checked
			onClick="document.forms.choix_guide.submit()">'.$i.'</td></tr>';
		else :
			echo '<tr><td>'.$j.'</td><td><input type="radio" name="guide" value="'.$j.'"
			onClick="document.forms.choix_guide.submit()">'.$i.'</td></tr>';
		endif;
		$j++;
	}
	echo '</table></form></center><br><br>';
	?>
0