Page 1 sur 2

Get page dans un get page = Problème!

Posté : 30 mars 2005, 10:44
par Hellraiser(non register)
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??

Posté : 30 mars 2005, 11:10
par demipoulp
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 )....

Posté : 30 mars 2005, 11:15
par ant
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

Posté : 30 mars 2005, 11:15
par Hellraiser
En fait "exercice" c'est du javascript

Posté : 30 mars 2005, 11:24
par flitox
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)

Posté : 30 mars 2005, 11:25
par Hell
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

Posté : 30 mars 2005, 11:29
par Hell
Même de préférence si je peux ne pas utiliser le javascript mais que du php je préfèrerais...

Posté : 30 mars 2005, 11:41
par demipoulp
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;
}
?>

Posté : 30 mars 2005, 11:45
par Hell
Peut être que je n'ai pas vraiment compri le fonctionnement de la focntion GET... :'(

Posté : 30 mars 2005, 11:51
par demipoulp
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 .

Posté : 30 mars 2005, 11:52
par Hell
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...

Posté : 30 mars 2005, 11:54
par demipoulp
effectivement j ai pas testé .
if (isset($_POST["exercices"])) { $exercices = $_POST["exercices"] ; }

Posté : 30 mars 2005, 11:56
par Hell
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"...

Posté : 30 mars 2005, 12:07
par hell
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!

Posté : 30 mars 2005, 12:15
par Hell
Bon et bien apparement ça fonctionne pas dutout là... :'(