Bonne utilisation des variable transmis dans l'URL.
Bonjours à tous,
Merci de l'aide que vous m'apporterez.
Donc j'ai vu un post similaire mais il ne m'as pas apportez la réponse que je cherche, du moins les conseils dont j'ai besoin.
Donc la situation :
Mon site(construction en local) marche au tour de index.php tous viens s'inclure dedans :
le menu
les page de contenu.
parmis mes pages j'en ai une qui s'appel contact.php, cette page a une liste déroulante de routing, pour selectionner(afficher) un formulaire.
Le soucis c'est que pour le moment l'appel d'un formulaire se fait sous cette URL :
Code:
http://localhost/monsite/index.php?page=formulaire_choisi
Mais je voudrais avoir cette URL a la place :
Code:
http://localhost/monsite/index.php?page=contact&form=formulaire_choisi
Ainsi j'aurais la présence de page=contact dans l'URL qui me permettra de garder l'état current de Contact(dans le menu) lorsque on est sur un formulaire.
Donc j'ai commencer par regardé si
Code:
echo $_GET['form'];
avais bien la valeur du formulaire choisi.
Et c'est OK.
mon problème est maintenat de rajouté dans le script suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <?php
echo $_GET['form'];
// On liste les pages
$page_array = array(
'accueil' => 'index',
'accueil' => 'accueil',
'mastering' => 'mastering',
'mixing' => 'mixing',
'tarifs' => 'tarifs',
'a_propos' => 'a_propos',
'contact' => 'contact',
'formulaire_mastering' => 'formulaire_mastering',
'formulaire_mixing' => 'formulaire_mixing',
'formulaire_informations' => 'formulaire_informations',
'formulaire_essai_offert' => 'formulaire_essai_offert'
);
// On vérifie si la variable $_GET['page'] existe bien
if (empty ($_GET['page']))
{
// On inclue la page d'accueil
include('./includes/accueil.php');
exit;
}
if (array_key_exists ($_GET['page'], $page_array)) // On vérifie si la page demandé ce situe dans l'array
{
// On inclue la page demandé
include('./includes/'.$page_array[$_GET['page']].'.php');
}
else
{
include('./includes/accueil.php');
}
?> |
Cette 2ème variable présente avec la page contact.php.
Donc pour commencer j'avais fais ceci pour le début(les array):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?php
// On liste les pages
$page_array = array(
'accueil' => 'index',
'accueil' => 'accueil',
'mastering' => 'mastering',
'mixing' => 'mixing',
'tarifs' => 'tarifs',
'a_propos' => 'a_propos',
'contact' => 'contact'
);
//on liste les formulaire
$form_array = array(
'formulaire_mastering' => 'formulaire_mastering',
'formulaire_mixing' => 'formulaire_mixing',
'formulaire_informations' => 'formulaire_informations',
'formulaire_essai_offert' => 'formulaire_essai_offert'
);
?> |
Mais ensuite je ne trouve pas la bonne syntaxe pour cette partie :
Code:
1 2 3 4 5 6 7 8
|
<?php
if (array_key_exists ($_GET['page'], $page_array)) // On vérifie si la page demandé ce situe dans l'array
{
// On inclue la page demandé
include('./includes/'.$page_array[$_GET['page']].'.php');
}
?> |
Comment puis-je ajouté ma nouvelle variable présente avec la page contact.php une fois que l'on selectionne un formulaire.
Si vous souhaité voir le menu de routing pour la selection du formulaire dites le moi.
Voici une ligne qui le compose et envoi l'URL :
Code:
1 2 3 4 5 6
|
<legend>Type de contact</legend>
<form class="formulaire" action="" method="get">
<select name="form" id="RoutingContact" onchange="MM_jumpMenu('parent',this,1)">
<option>Sélectionnez un formulaire...</option>
<option value="&form=formulaire_mastering">Mastering</option> |
Je pense pas que le Javascript génè car la variable form= est bien envoyé sur index.php.
C'est juste que j'arrive pas a l'exploité, du moins a formulé la synthax.
Merci beaucoup pour votre aide et vos conseils.
['Màj']
Alors il y a du nouveau mais sa bloque encore un peu
voici le code de Index qui marche presque :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| <?php
echo $_GET['form'];//echo pour être sur que la variable "form=" fonctionne
// On liste les pages
$page_array = array(
'accueil' => 'accueil',
'mastering' => 'mastering',
'mixing' => 'mixing',
'tarifs' => 'tarifs',
'a_propos' => 'a_propos',
'contact' => 'contact'
);
//on liste les formulaire
$form_array = array(
'formulaire_mastering' => 'formulaire_mastering',
'formulaire_mixing' => 'formulaire_mixing',
'formulaire_informations' => 'formulaire_informations',
'formulaire_essai_offert' => 'formulaire_essai_offert'
);
$form = htmlspecialchars($_GET['form']);
// On vérifie si la variable $_GET['page'] existe bien
if (empty ($_GET['page']))
{
// On inclue la page d'accueil
include('./includes/accueil.php');
exit;
}
if (array_key_exists ($_GET['page'], $page_array) AND $_GET[''] !='contact' )// On vérifie si la page demandé ce situe dans l'array
{
// On inclue la page demandé
include('./includes/'.$page_array[$_GET['page']].'.php');
}
elseif (array_key_exists($_GET['page'], $page_array)AND $_GET['page']== 'contact')
switch($form)
{
case "formulaire_mastering": //cas:on veut le formulaire Mastering
include('./includes/'.$form_array[$_GET['form']].'.php');//on inclu le form
break;
case "formulaire_mixing": //cas:on veut le formulaire Mixing
include('./includes/'.$form_array[$_GET['form']].'.php');//on inclu le form
break;
case "formulaire_informations": //cas:on veut le formulaire infos
include('./includes/'.$form_array[$_GET['form']].'.php');//on inclu le form
break;
case "formulaire_essai_offert": //cas:on veut le formulaire essai offert
include('./includes/'.$form_array[$_GET['form']].'.php');//on inclu le form
break;
default;
includes('./includes/'.$page_array[$_GET['page']].'.php');//si rien selectionner on reste sur contact.php
}
else
{
include('./includes/accueil.php');
}
?> |
Donc sa m'as bien fait avancer toute fois deux chose persiste.
- Impossible d'avoir accè a contact donc de selectionné un formulaire.(mais si je tape l'adresse c'est OK)
Voici l'erreur quand je clique sur contact dans ma barre de menu :
Code:
1 2 3 4 5
| Notice: Undefined index: form in C:\wamp\www\ITB.AUDIO\index.php on line 24
Notice: Undefined index: form in C:\wamp\www\ITB.AUDIO\index.php on line 41
Fatal error: Call to undefined function includes() in C:\wamp\www\ITB.AUDIO\index.php on line 74 |
- Quand je vais sur les autre pages j'ai toujours cette erreurs :
Sur chaque page en navigant avec le menu :
Code:
1 2 3
| Notice: Undefined index: form in C:\wamp\www\ITB.AUDIO\index.php on line 24
Notice: Undefined index: form in C:\wamp\www\ITB.AUDIO\index.php on line 41 |
Donc voici mes avancé jusque maintenant meric de votre aide et de vos conseils.