liste déroulante html / PHP

Eléphanteau du PHP | 13 Messages

23 oct. 2007, 22:11

Bonjour à tous,
je demande votre aide pour un problème sur un liste déroulante. Pour tout vous dire j'y connais pas grande chose en php. Voici mon problème :
Dans maliste , il y a 2 valeurs en l'occurence "Equipe A" & " Equipe B" et chaqu'une de ces valeurs devraient me permettre d'affiche le classement de chaque équipe via le site de la fff. Et je ne sais pas comment faire !?!
<?php
	function resultat($equipe)
	{
	echo $equipe
	
	if ($equipe = 'A')
	{
	// équipe A
	// Page source
	$page = file_get_contents("http://www.fff.fr/competitions/php/championnat/championnat_classement.php?sa_no=2007&cp_no=138972&ph_no=1&gp_no=");
	
	// découpage pour afficher la date de la mise à jour du classement
	if (is_int(stripos($page, 'Classement au')))
	{
		$position3 = stripos($page, 'Classement au');
		$decoupe3 = substr($page,$position3-25);
		
		$position4 = stripos($decoupe3, 'Club');
		$decoupe4 = substr($decoupe3, 0, $position4-158);
		echo $decoupe4;
	}
	else
	{
		echo "contacter l'administarteur du site";
	}
	
	// découpage pour afficher le classement
	if (is_int(stripos($page, 'Jasney')))
	{
		$position1 = stripos($page, 'pts');
		$decoupe1 = substr($page,$position1-150);
		
		$position2 = stripos($decoupe1, 'sultats');
		$decoupe2 = substr($decoupe1, 0, $position2-150);
		echo $decoupe2;
	}
	else
	{
		echo "contacter l'administarteur du site";
	}
	
	}
	if ($equipe = 'B')
	{
	
	// équipe B
	// Page source
	$page = file_get_contents("http://www.fff.fr/competitions/php/championnat/championnat_classement.php?sa_no=2007&cp_no=138975&ph_no=1&gp_no=4") ;
	
	// découpage pour afficher la date de la mise à jour du classement
	if (is_int(stripos($page, 'Classement au')))
	{
		$position3 = stripos($page, 'Classement au');
		$decoupe3 = substr($page,$position3-25);
		
		$position4 = stripos($decoupe3, 'Club');
		$decoupe4 = substr($decoupe3, 0, $position4-158);
		echo $decoupe4;
	}
	else
	{
		echo "contacter l'administarteur du site";
	}
	
	// découpage pour afficher le classeement
	if (is_int(stripos($page, 'Jasney')))
	{
		$position1 = stripos($page, 'pts');
		$decoupe1 = substr($page,$position1-150);
		
		$position2 = stripos($decoupe1, 'sultats');
		$decoupe2 = substr($decoupe1, 0, $position2-150);
		echo $decoupe2;
	}
	else
	{
		echo "contacter l'administarteur du site";
	}
	}
	else
	{
		echo "contacter l'administarteur du site";
	}
 
?>

Code : Tout sélectionner

<body> <?php include "fonction.resultat3.php"?> <h1> classement des équipes </h1> <select name="listepages" onChange="resultat(value)"> <option value="A" selected="selected"> équipe A </option> <option value="B" > équipe B </option> </select> </form> </body>

Eléphanteau du PHP | 13 Messages

24 oct. 2007, 10:04

Non personne pour m'aider.
Je veux juste créer un menu déroulant pour sélectionner une équipe afin d'afin d'afficher son classement. Ce classement est évidament tirer du site de la fff. Mais je ne sais pas si je fais ca de la bonne manière ?!?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 oct. 2007, 10:12

Tu mélanges javascript et php. Php s'exécute sur le serveur et nécessite un rechargement de la page, javascript quant à lui s'exécute côté client et nécessite donc d'avoir toutes les données sous la main. Tu ne peux pas "mélanger" les deux.

En l'occurence, ta fonction resultat() est une fonction php, alors que l'événement onChange qui détecte la modification de valeur dans la liste déclenche une action javascript.

Tu dois donc dans ton action onChange soumettre le formulaire, récupérer la valeur sélectionner et générer à nouveau la page avec les infos qui vont bien. Tu peux regarder dans la FAQ le tuto sur les listes déroulantes liées, le principe est le même : au lieu de charger une nouvelle liste déroulante, tu afficheras juste les infos associées à la valeur spécifiée :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 13 Messages

24 oct. 2007, 12:06

OK, j'ai bien suivi tes conseils. Et ca donne ca. C'est cool ca marche.
Par contre, en utilisant cette méthode, j'ai un boutton pour valider ma selection alors que je veux que ca se fasse automatiquement, c'est a dire sans cliquer sur "OK". As tu une idée ?

Fonction
<?php
function resultat($equipe)
{
	
	//echo $equipe;
	
	if($equipe == 'A'){
	
		// équipe A
		// Page source
		$page = file_get_contents("http://www.fff.fr/competitions/php/championnat/championnat_classement.php?sa_no=2007&cp_no=138972&ph_no=1&gp_no=");
		
		// découpage pour afficher la date de la mise à jour du classement
		if (is_int(stripos($page, 'Classement au')))
		{
			$position3 = stripos($page, 'Classement au');
			$decoupe3 = substr($page,$position3-25);
			
			$position4 = stripos($decoupe3, 'Club');
			$decoupe4 = substr($decoupe3, 0, $position4-158);
			echo $decoupe4;
		}
		else
		{
			echo "contacter l'administarteur du site";
		}
		
		// découpage pour afficher le classement
		if (is_int(stripos($page, 'Jasney')))
		{
			$position1 = stripos($page, 'pts');
			$decoupe1 = substr($page,$position1-150);
			
			$position2 = stripos($decoupe1, 'sultats');
			$decoupe2 = substr($decoupe1, 0, $position2-150);
			echo $decoupe2;
		}
		else
		{
			echo "contacter l'administarteur du site";
		}
	
	}
	elseif($equipe == 'B'){
		
		// équipe B
		// Page source
		$page = file_get_contents("http://www.fff.fr/competitions/php/championnat/championnat_classement.php?sa_no=2007&cp_no=138975&ph_no=1&gp_no=4") ;
		
		// découpage pour afficher la date de la mise à jour du classement
		if (is_int(stripos($page, 'Classement au')))
		{
			$position3 = stripos($page, 'Classement au');
			$decoupe3 = substr($page,$position3-25);
			
			$position4 = stripos($decoupe3, 'Club');
			$decoupe4 = substr($decoupe3, 0, $position4-158);
			echo $decoupe4;
		}
		else
		{
			echo "contacter l'administarteur du site";
		}
	
		// découpage pour afficher le classeement
		if (is_int(stripos($page, 'Jasney')))
		{
			$position1 = stripos($page, 'pts');
			$decoupe1 = substr($page,$position1-150);
			
			$position2 = stripos($decoupe1, 'sultats');
			$decoupe2 = substr($decoupe1, 0, $position2-150);
			echo $decoupe2;
		}
		else
		{
			echo "contacter l'administarteur du site";
		}
	}
	
	else
	{
		echo "contacter l'administarteur du site";
	}
}
?>
index

Code : Tout sélectionner

<form method="POST"> <select name="mon_champ"> <option selected="selected">A</option> <option>B</option> <option>18</option> </select> <input type="submit" value="OK"/> </form> <?php $mon_champ = isset($_POST['mon_champ']) ? $_POST['mon_champ'] : ''; if ($mon_champ) { ?> <b> <?php Require ("5.php"); echo resultat($mon_champ); ?> </b> <br/><br/> <?php } ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 oct. 2007, 12:33

Vouip, en javascript, tu peux soumettre le formulaire avec la fonction submit(). Tu peux ainsi déclencher la validation du formulaire sur l'action onChange de ton select :) :
<select name="mon_champ" onChange="this.form.submit();"> 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 13 Messages

24 oct. 2007, 13:02

Trop fort ca fonction NIKEL.
Merci.

Eléphanteau du PHP | 13 Messages

24 oct. 2007, 13:28

Encore quelques précisions, j'utilise les fonctions stripos et substr pour découper le contenu des pages web que je récupère. N'y aurait il pas une autre fonction ou système plus simple ?