Get page dans un get page = Problème!

Hellraiser(non register)
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 10:44

Bonjour tout le monde!
J'ai un légé souci avec mon get...

<table height="100%" width="100%" border="0" cellpadding="0" cellspacing="0" align="center" valign="top" class="centerblue">
<tr><td height="20" align="center" valign="top" class="hcenterblue">Trucs & Astuces pour microsoft powerpoint</td></tr>
<tr><td>
<form>
<select style="font-size: 10px ;color:black; font-style:normal; font-weight:normal; background-color:white; width:220px" size="1" NAME="Exercices" SIZE=1 onChange="ChangeExo(this.form)">
<option SELECTED VALUE="">---------------&nbsp;Liste des Raccourcis&nbsp;--------------</option>
<option value="?page=powerpoint01">Suppression et copie de texte ou d'objets</option>
<option value="?page=powerpoint02">Déplacements dans le texte</option>
<option value="?page=powerpoint03">Afficher la date et l'heure</option>
<option value="?page=powerpoint04">Sélection de texte et d'objets</option>
<option value="?page=powerpoint05">Fenêtres et boîtes de dialogue</option>
<option value="?page=powerpoint06">Utilisation des menus</option>
<option value="?page=powerpoint07">Barres d'outils</option>
<option value="?page=powerpoint08">Commandes pour un diaporama</option>
<option value="?page=powerpoint09">Utilisation du Compagnon Office</option>
</select>
</form>
</td>
</tr>
<tr><td><?php
if (isset($_GET["page"])) $page = $_GET["page"];
else $page = "";
switch ($page) {
case "powerpoint01" : include("powerpoint01.inc.php"); break;
case "powerpoint02" : include("powerpoint02.inc.php"); break;
case "powerpoint03" : include("powerpoint03.inc.php"); break;
case "powerpoint04" : include("powerpoint04.inc.php"); break;
case "powerpoint05" : include("powerpoint05.inc.php"); break;
case "powerpoint06" : include("powerpoint06.inc.php"); break;
case "powerpoint07" : include("powerpoint07.inc.php"); break;
case "powerpoint08" : include("powerpoint08.inc.php"); break;
case "powerpoint09" : include("powerpoint09.inc.php"); break;
default : include("accueilpp.inc.php"); break;
}
?>
</td></tr>
<tr><td height="100%"><br></tr></td>
</table>


Je vous explique clairement car le code est un peu fouilli:
J'ai un site web avec une page d'accueil et un menu sur la gauche avec un get qui me modifi la page pincipale(très basic)...
Une fois que je clic sur le menu powerpoint par exemple ça m'affiche la page powerpoint.inc.php(c'est le code que je vous ai mi plus haut :p)
En fait, je voulais garder la liste déroulante en head(dans un premier TD) et afficher dans le TD un peu plus bas seulement ça ne fonctionne pas... Ou plutôt à moitié puisqu'il m'affiche tout de même la page d'accueil mais quand je clic sur un des liens de ma liste ça ne fonctionne pas :'(...
Je comprend vraiment pas!
Qui pourrait m'éclaircir??

Eléphant du PHP | 200 Messages

30 mars 2005, 11:10

effectivement c'est un peu fouilli pourquoi recupere tus $_GET["page"] alors qur tu envois Exercices ( ou est la methode dans le form dailleur ? ) ...ou alors ton get viens d une autre page ( dasn ce cas fait un echo $_GET["page"] pour etre sur du passage de variable )....
Univers divided by 0 - cucumber error - reboot

ant
Eléphant du PHP | 161 Messages

30 mars 2005, 11:15

Oui c'est clair que ton code est fouilli.

Donc déja, supprime les points d'interrogation dans dans tes paramètres value:

Code : Tout sélectionner

<option value="page=powerpoint01">Suppression et copie de texte ou d'objets</option> // ETC
Ensuite pour récupérer les paramètres de ta liste, faut que tu récupères ta variable $_POST["exercices"] (le nom de ta liste) puisque tu utilises un formulaire et que tu la traites. (les variables sont transmises via POST si tu utilises des formulaires généralement bien qu'ici tu ne précises même pas la méthode)

Donc, Ici ta variable $GET_["page"] ne vaut rien (pense à faire des echos de tes variables, ca te donne des pistes) et donc la clause default est forcément toujours exécutée.

Si tu veux traiter des variables via GET , il te faut passer tes paramètres via des URL

PS: met ton code entre les balises code
Modifié en dernier par ant le 30 mars 2005, 11:17, modifié 2 fois.

Petit nouveau ! | 1 Messages

30 mars 2005, 11:15

En fait "exercice" c'est du javascript

Mammouth du PHP | 859 Messages

30 mars 2005, 11:24

Je ne sais pas si ça change quelquechose car j'avoue ne jamais avoir essayé et m'être posé la question :

$_GET["page"] devrait s'écrire $_GET['page'] (avec simples quotes)

Hell
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 11:25

Bon je suis en entrepris le poste est matricé impossible de me loguer...
Je vous donne le java script...
<script LANGUAGE="JavaScript">

function ChangeExo(formulaire){

if (formulaire.Exercices.selectedIndex != 0){

window.top.location.href = formulaire.Exercices.options[formulaire.Exercices.selectedIndex].value;

}else{

alert('Veuillez choisir un exercice.');

}

}
</SCRIPT>

Voila...
Si vous avez une solution beaucoup plus simple ce serait pas de refu étant donné que je vien de commencer le php...
Avec quelques exemples si possible...
Merci d'avance...
Quel noob je fais :p

Hell
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 11:29

Même de préférence si je peux ne pas utiliser le javascript mais que du php je préfèrerais...

Eléphant du PHP | 200 Messages

30 mars 2005, 11:41

je ne comprend pas pourquoi tu te complique la vie avec ce ?page=tutu passé dansl url qu 'ensuite tu recuperes ....
<form>
<select 
style="font-size: 10px ;color:black; font-style:normal; font-weight:normal; background-color:white; width:220px"  
name="exercices"  method="POST" action="tapage.php">

<option SELECTED VALUE="">---------------&nbsp;Liste des Raccourcis&nbsp;--------------</option>
<option value="1">Suppression et copie de texte ou d'objets</option>
<option value="2">Déplacements dans le texte</option>
<option value="3">Afficher la date et l'heure</option>
<option value="4">Sélection de texte et d'objets</option>
<option value="5">Fenêtres et boîtes de dialogue</option>
<option value="6">Utilisation des menus</option>
<option value="7">Barres d'outils</option>
<option value="8">Commandes pour un diaporama</option>
<option value="9">Utilisation du Compagnon Office</option>
</select>
</form>

<?php
if (isset($_POST["exercices"])) { $exercices = $_POST["exercices"]} 
switch ($exercices) {
case 1 : include("powerpoint0<?php echo $exercices;?>.inc.php"); break;
case 2 : include("powerpoint0<?php echo $exercices;?>.inc.php"); break;
.......
default : include("accueilpp.inc.php"); break;
}
?>
Univers divided by 0 - cucumber error - reboot

Hell
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 11:45

Peut être que je n'ai pas vraiment compri le fonctionnement de la focntion GET... :'(

Eléphant du PHP | 200 Messages

30 mars 2005, 11:51

Get passe tes variables via l url page.php?a=1&b=2 du navigateur
Post passse tes variables de facon "transparentes" , c'est une questiond e choix et de possibilité technique .
Univers divided by 0 - cucumber error - reboot

Hell
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 11:52

Ya un roblème dans ton exemple apparement...
C'est quand même bien sympa de m'aider!
Bon je vais voir si c'est pas moi qui ai fait le boulet mais bon...
Pourtant j'ai repris la même chose...

Eléphant du PHP | 200 Messages

30 mars 2005, 11:54

effectivement j ai pas testé .
if (isset($_POST["exercices"])) { $exercices = $_POST["exercices"] ; }
Modifié en dernier par demipoulp le 30 mars 2005, 12:13, modifié 1 fois.
Univers divided by 0 - cucumber error - reboot

Hell
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 11:56

Je comprend pas trop la erreur dans le code alors qu'à première vu ça derait pas poser de problème...
Ya une erreur à partir de la ligne du "if"...

hell
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 12:07

case 1 : include("powerpoint0<?php echo $exercices;?>.inc.php"); break;
En fait sur cette ligne il détecte pas le début de la balise php
Doit y avoir une erreur quelque part!

Hell
Invité n'ayant pas de compte PHPfrance

30 mars 2005, 12:15

Bon et bien apparement ça fonctionne pas dutout là... :'(