Exercice à résoudre

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 : Exercice à résoudre

Re: Exercice à résoudre

par sirakawa » 15 déc. 2014, 14:07

Si, il est fonctionnel grace au onchange ="submit".
Je trouve le code un peu cochon avec beaucoup de choses inutiles
<!-- Il manque une bonne partie du prologue HTML-->
<meta charset="utf-8">
<title>Les Capitales Européennes</title>
<?php
	$capitales = array
	(
	1 => array("Berlin", "8 416 535"),
	2 => array("Londres", "3 517 424"),
	3 => array("Madrid", "3 207 247"),
	4 => array("Rome", "2 863 322"),
	5 => array("Paris", "2 249 975"),
	6 => array("Bucarest", "1 883 425"),
	7 => array("Varsovie", "1 724 404"),
	8 => array("Prague", "1 243 201"),
	9 => array("Stockholm", "897 700"),
	10 => array("Lisbonne", "547 733"),
	11 => array("Dublin", "527 612"),
	12 => array("Bruxelles", "168 576"),
	);
?>

<h1>Les Capitales Européennes</h1>
<!--ajout de fieldset pour l'esthétique-->
<fieldset>
	<legend>Avoir des détails sur  une capitale</legend>
	<form method="post" action="exercice1.php">
		<!-- Suppression du onchange = "submit()" qui fonctionnait mais
		 empêchait les boutons de jouer leur rôle-->
		<select name="capitale" id="capitale"">

		<?php
			foreach ($capitales as $key => $value)
			{
				echo '<option value="'.$key.'" '.$selected.'>'.$value[0].'</option>';
			}
		?>
		</select>
		<!-- formaction est une propriété des boutons qui se sbstitue à action= de la clause <form> -->
		<button formaction = "exercice1.php" type ="submit">Choisir cette ville</button>
</fieldset>

<fieldset>
	<legend>Connaitre les villes de plus de 2 000 000  d'habitants</legend>
 		<button formaction = "exercice2.php" type ="submit">Connaitre</button>
</form>
</fieldset>

<?php

if(isset($_POST['capitale'])) {
$choice = $capitales[$_POST['capitale']];
echo '<fieldset>Vous avez choisi : '.$choice[0].'<br>Il y a '.$choice[1].' habitants dans cette ville. </fieldset>';

}

?>
Pour exercice2.php, il faudrait savoir si vous avez appris les sessions ou pas. IL faudrait avoir les populatins au moins sans espaces, ou utiliser str_replace
Sans quoi l suffit d'un foreach sur le tableau avec un if à l'intérieur

Re: Exercice à résoudre

par Spols » 15 déc. 2014, 12:31

une condition if sur l'affichage de tes options suffira

Mais as tu compris pourquoi cela fonctionne pour ton premier exercice ? sans bouton submit je doute qu'il sois vraiment fonctionnel

PS utilise les balise php sur le forum pour montrer ton code

Re: Exercice à résoudre

par Tinush » 15 déc. 2014, 12:22

J'ai trouver la solution au premier exercice mais pas au deuxième !


<?php

$capitale = array(
1 => array("Berlin", "8 416 535"),
2 => array("Londres", "3 517 424"),
3 => array("Madrid", "3 207 247"),
4 => array("Rome", "2 863 322"),
5 => array("Paris", "2 249 975"),
6 => array("Bucarest", "1 883 425"),
7 => array("Varsovie", "1 724 404"),
8 => array("Prague", "1 243 201"),
9 => array("Stockholm", "897 700"),
10 => array("Lisbonne", "547 733"),
11 => array("Dublin", "527 612"),
12 => array("Bruxelles", "168 576"),

);

?>

<meta charset="utf-8">
<title>Les Capitales Européennes</title>

<h1>Les Capitales Européennes</h1>

<form method="post" action="exercice1.php">

<select name="capitale" id="capitale" onchange="submit()">
<option value="0">-- choisir la capitale --</option>

<?php
foreach ($capitale as $key => $value) {
$selected="";
if($_POST['capitale'] == $key) { $selected = "selected"; }
echo '<option value="'.$key.'" '.$selected.'>'.$value[0].'</option>';
}
?>

</select>

</form>

<br>

<?php

if(isset($_POST['capitale'])) {
if($_POST['capitale'] == 0){
echo 'Choisissez une Capitale Européennes pour connaitre son nombre d habitants.';
}
else {
$choice = $capitale[$_POST['capitale']];
echo 'Vous avez choisi : '.$choice[0].'<br>Il y a '.$choice[1].' habitants dans cette ville. ';
}
}

?>

Re: Exercice à résoudre

par Spols » 15 déc. 2014, 12:13

As tu au moins commencer à créer ta page exercice1.php ? Montre la nous.

Une liste déroulante se fait avec une balise select et des balise option à l'intérieur pour chaque choix.

Exercice à résoudre

par Tinush » 15 déc. 2014, 11:41

Bonjour,
Je bloque sur l'exercice suivant surtout sur les listes déroulantes !
Je compte sur vous pour m'aider à le résoudre :wink: !



> Nombre d’habitants des capitales Européennes
Initialiser le tableau suivant, qui donne le nombre d’habitants de quelques capitales européennes.


Ville Nombres d’habitants
Londre 8 416 535
Berlin 3 517 424
Madrid 3 207 247
Rome 2 863 322
Paris 2 249 975
Bucarest 1 883 425
Varsovie 1 724 404
Prague 1 243 201
Stockholm 897 700
Lisbonne 547 733
Dublin 527 612
Bruxelles 168 576

1- Créer une page exercice1.php , qui proposera une liste déroulante dynamique (issue des données du tableaux) : à la sélection d’une valeur dans la liste, afficher le message qui rappelle le nom de la ville sélectionnée et son nombre d’habitants correspondant.

2- Créer une page exercice2.php, qui n’affichera que les capitales dont le nombre d’habitants est supérieur à 2 millions.