Page 1 sur 1

include et fichiers

Posté : 05 juin 2006, 23:50
par Bubu
Au secourrrrrrs,
Débutant en php, je viens de passer 2 jours sur un truc et le résultat est de pire en pire … :(

L’idée est d’afficher des records par disciplines dans un tableau grace à des variables. (jusque là tout va bien.)
Et de les afficher dans un seul tableau suivant l'ages des participants (là rien ne va plus)
Le visiteur choisi dans un menu déroulant l’age des enfants et les valeurs du tableau changent.

J’ai essayé de changer le nom du fichier à inclure en fonction du choix du visiteur.

Voici ce qui reste du code après de nombreuses heures d’énervement :
- les fichiers include sont dans le dossier include
- les include se nomment ‘test13’(contient les variables pour les 13 ans) ‘test14’(contient les variables pour les 14 ans) et ‘test15 (contient les variables pour les 15 ans)
- Chaque fichier include contient la variable $age.

----------------------
<?php

function modvar(liste)
{ 
  if (liste == test13) 
    ($age_record = test13); 
  else  if (liste == test14) 
       ($age_record == test14); 
else  if (liste == test15) 
       ($age_record == test15);
} 
?>
</head>

--------------------

<FORM>
<SELECT NAME="liste" onChange='modvar(this)'>
	<option value="test13">13 ans</option>
	<option value="test14">14 ans</option>
	<option value="test15">15 ans</option>
</SELECT>
</FORM>
<?  
include ("include/$age_record.php");
?>
<?
echo $age;
?>

---------------------

Ne rigolez pas !!! C’est pas marrant :oops:

Si vous pouviez m’aidez ce serai vraiment sympa car là j’abandonne.
Merci d’avance

Posté : 06 juin 2006, 00:30
par iclo
Ca m'a l'air très étrange comme façon de faire, elles sont donc si complexes que ça tes variables des tranches d'ages ??
Pour réaliser des includes différents et pas simplement tout mettre dans un seul fichier.
Il va falloir que tu nous en dise plus sur ce que tu veux faire.

Sinon, penses à lire les règles des forums : un titre explicite est plus que vivement demandé.

Posté : 06 juin 2006, 00:56
par Bubu
J'ai 7 tranches d'ages avec toujours les même disciplines et des résultats filles et garçons avec nom, performance et club. Ce qui fait un tableau assez long.
Donc pour ne pas cumuler 7 long tableaux sur la même page j'ai pensé que changer le remplissage du tableau en fonction de la tranche d'age consultée(demandée) était plus judicieux.

Je précise que j'ai bouquiné, cherché sur Internet, comparé avec des fonctions d'autres scripts et que ce que j'avais fait au début était un peu différent. Et je concède que le resultat doit être un peu pitoyable à vos yeux. Mais si j'en retire un peu de connaissance, tout cela n'aura pas été vain. :wink:

Re: Au secourrrrrrs

Posté : 06 juin 2006, 06:22
par jpaul
Salut,
A première vue, je vois 4 annomalies :
1) ton formulaire ne precise pas la methode, peut être y a-t-il une methode par defaut mais c'est mieux de préciser celle que tu veux employer :
<FORM METHOD="GET">
ou
<FORM METHOD="POST">

2) il manque un bouton SUBMIT au formulare.
3) Ensuite pour récupérer ta variable liste, il faut relire le tableau correspondant à la méthode :
if ($_GET['liste'] == test13)
ou
if ($_POST['liste'] == test13)
un switch serait plus approprié mais, enocre mieux, pourquoi passer par une variable intermédiaire ?
4) ta fonction modvar n'est pas appelée...

A ta place, j'essayerais :
<?php

?>
</head>

--------------------

<FORM METHOD="POST">
<SELECT NAME="liste" onChange='modvar(this)'>
	<option value="test13">13 ans</option>
	<option value="test14">14 ans</option>
	<option value="test15">15 ans</option>
</SELECT>
<input type="submit" value="Submit" />
</FORM>
<?  
// pourquoi passer par $age_record puisque les données sont dans $_POST['liste'] ?
//include ("include/$age_record.php");
include ("include/$_POST['liste'].php");
?>
<?
echo $age;
?>

Ceci dit, je viens de me lever et le cafe est en train de passer (je ne l'ai pas encore bu ;) )
[/quote]

Posté : 06 juin 2006, 10:46
par iclo
Ce serait beaucoup plus simple et plus évolutif d'utiliser une base de donnée pour stocker toutes ces informations. Sans compter que si un jour ces données devaient pouvoir être modifier par l'administrateur du site, la moitité du boulot serait déja fait.

Posté : 07 juin 2006, 21:41
par Invité
Salut,

J'ai donc essayé ceci :
<FORM METHOD="POST"> 
<SELECT NAME="liste"> 
    <option value="test13">13 ans</option> 
    <option value="test14">14 ans</option> 
    <option value="test15">15 ans</option> 
</SELECT> 
<input type="submit" value="Submit" /> 
</FORM> 


<?   
include ("include/$_POST['liste'].php"); 
?> 


<? 
echo $age; 
?> 
mais là la page ne s'affiche plus.
J'ai essayé plein de modifs comme par exemple d'envoyer la valeur dans un fichier avec "action" puis d'inclure ce fichier. :roll:
Rien, rien et encore rien ...

Pour ce qui est de mysql, je ne maitrise pas assez. (les mauvaises langues diront "houai !!! tu maitrise rien tu veux dire.")

En tout cas, merci pour votre aide, on va y arriver :) (peut être ...)

Posté : 08 juin 2006, 22:15
par jpaul
As tu esssayé de faire un :
echo "<HR>".$_POST['liste']."<HR>";
pour vérifier le contenu ?

autrement, tu peux faire :
echo "<pre>";
print_r($_POST);
echo "<_pre>";
Pour voir le contenu du tableau...

Peut être écrire le include comme suit :
include ("include/".$_POST['liste'].".php"); 
Mais je n'y crois pas trop...

Désolé mais là je ne comprends pas.