Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2007, 11h11   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Par défaut [PHP-JS] Affichage de plusieurs pages sur la même page

Bonjour à tous!

Le titre n'est pas très clair mais je ne savais pas trop comment le nommer vu mon problème...

J'ai une page d'accueil dont le code est le suivant :

accueil.php :
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
	$serveur="localhost";
	$utilisateur="root";
	$mdp="";
	$bdd="testcartes";
 
	mysql_connect($serveur,$utilisateur,$mdp) 
			or die("Impossible de se connecter à la base de données"); 
	mysql_select_db($bdd);
 
include ("choixAnalyse.php");
 
$ChoixAnalyse=$_POST['ChoixAnalyse'];
 
switch ($ChoixAnalyse){
	case 'pac' :
		include ("choixPAC.php");
	break;
 
	case 'cartes' :
		include ("choixCartes.php");
	break;	
 
	case 'infos' :
		include ("choixInfos.php");		
	break;
 
	case 'tout' :
		include ("tout.php");
	break;
};
?>
et voici la page choixAnalyse.php qui est la page affiché par dfaut et toujours au debut de la page 'accueil.php'

choixAnalyse.php :
Code html :
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
 
<html>
<body>
 
<table align=center cellpadding=3><form method=post action='accueil.php'>
	<tr align=left cellpadding=3>
		<td><font face=verdana size=3>
		<b><u>Choisir le type d'analyse voulue : <br><br></u></b>
		</td><br></font>
	</tr>
 
	<tr align=left cellpadding=3>
		<td><font face=verdana size=2>
		<input type='radio' name='ChoixAnalyse' value='pac'>  par PAC
		</td></font>
	</tr>
 
	<tr align=left cellpadding=3>
		<td><font face=verdana size=2>
		<input type='radio' name='ChoixAnalyse' value='cartes'>  par type de cartes		
		</td></font>
	</tr>
 
	<tr align=left cellpadding=3>
		<td><font face=verdana size=2>
		<input type='radio' name='ChoixAnalyse' value='infos'>  par informations		
		</td></font>
	</tr>
 
	<tr align=left cellpadding=3>
		<td><font face=verdana size=2>
		<input type='radio' name='ChoixAnalyse' value='tout'>  tout
		</td></font>
	</tr>
 
	<tr align=center cellpadding=3>
		<td>
		<input type='submit' name='envoiAnalyse' value='Valider!'>
		</font></td>
	</tr>
 
</table>
</body>
</html>

Donc il y a 4 boutons radios qui, selon celui que l'on choisit, renvoit sur 4 pages différentes.

Par exemple, l'utilisateur choisit le bouton "PAC". Cela le renvoi sur cette page :

choixPAC.php :
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
60
61
 
<?php
	$serveur="localhost";
	$utilisateur="root";
	$mdp="";
	$bdd="testcartes";
 
	mysql_connect($serveur,$utilisateur,$mdp) 
			or die("Impossible de se connecter à la base de données"); 
	mysql_select_db($bdd);
?>
 
<html>
<body>
 
<table align='center' cellpadding='3'><form method="post" action='traitementPAC.php'>
	<tr align='center'>
		<td><font face='verdana' size='3'>
		<b><u>Choisir le pac : <br><br></u></b>
		</font></td>
	</tr>
 
	<tr align='left'>
		<td><font face='verdana' size='2'> Numero du PAC : </font></td>
		<td><input type='text' name='pac'></td>
	</tr>
 
	<tr align='left'>
		<td><font face='verdana' size='2'> Nom du client : </font></td>
		<td><select name='client'>
	<?php
		$sql = "select client from pac order by client ASC";
		$res = mysql_query($sql);
		echo "<option selected>Choisir le nom du client...</option>\n";		
		while($val=mysql_fetch_array($res)) {
			echo "<option>".$val['client']."</option>\n";
		};
	?>
		</select></td>
	</tr>
 
	<tr align='center'>
		<td>
		<input type='submit' name='envoiPAC' value='Valider!'>
		</font></td>
	</tr>
 
</table>
</body>
</html>
 
<?php
mysql_close();	
?>
 
<br><br><br><br><br><br>
<table align='center' cellpadding=3>
<a href="http://localhost/cartes/accueil.php">
<font face='verdana' size='2'>Retour à la page d'accueil </font>
</a>
</table>
Jusque là ca fonctionne, je peux sélectionner un nom de client (ma base de donnée fonctionne bien) et j'ai bien l'affichage de ma page d'accueil comprenant les pages choixAnalyse.php et choixPAC.php affichés à la suite...
Mais derriere la page 'choixPAC.php' il y a une page de traitement lié à ces choix qui est :

traitementPAC.php :
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
 
<?php
	$serveur="localhost";
	$utilisateur="root";
	$mdp="";
	$bdd="testcartes";
 
	mysql_connect($serveur,$utilisateur,$mdp) 
			or die("Impossible de se connecter à la base de données"); 
	mysql_select_db($bdd);
 
$pac=$_POST['pac'];	
$client=$_POST['client'];
 
if($pac!=null){
	$sqlpac="select pac,client,nb_bulletins from pac where pac=$pac";
	$resultatpac=mysql_query($sqlpac);
	if($resultatpac){
		$tab_result=mysql_fetch_assoc($resultatpac);
		$client=$tab_result[client];
		$nb_bulletins=$tab_result[nb_bulletins];
	};		
}
else{
	$sqlclient="SELECT pac, client, nb_bulletins FROM pac WHERE client = '$client'";
	$resultatclient=mysql_query($sqlclient);
	if($resultatclient){
		$tab_result=mysql_fetch_assoc($resultatclient);
		$pac=$tab_result[pac];
		$nb_bulletins=$tab_result[nb_bulletins];
	};		
};
 
if(($_POST['pac']==NULL) && ($_POST['client']=='Choisir le nom du client...')){
	echo"Le champs correspondant au numero de pac n'est pas rempli et le nom du client n'est pas sélectionné... <br><br>";
}
else{
	echo" <table width=700 align=center><font face='verdana' size=2><b><u> Choix du PAC n° :</u></b> $pac <br>";
	echo" <b><u> Client :</u></b> $client <br>";
	echo" <b><u> Nombre de bulletins de paie :</u></b> $nb_bulletins <br></font></table>";
};
 
?>
 
<br><br><br><br><br><br>
<table align='center' cellpadding=3>
<a href="http://localhost/cartes/accueil.php">
<font face='verdana' size='2'>Retour à la page d'accueil </font>
</a>
</table>
Voila le problème : Lorsque je clique sur "valider" apres avoir choisit mon nom de client ou entré son code PAC, il ne fait pas le traitement souhaité, n'affiche rien et me renvoi directement sur la page d'accueil avec juste par defaut la page 'choixAnalyse.php'... c'est à dire ce que l'on a au début!!

Ce que je souhaite c'est que au fur et à mesure des choix faits par l'utilisateur, la page 'accueil.php' soit réaffichée en fonction des choix fait, avec un affichage de leur choix...

Je precise aussi que lorsque j'execute 'choixPAC.php' tout seul directement tout fonctionne tres bien...

Donc est ce que je m'y suis bien prise dans la methode pour faire ce que je souhaite ou est ce qu'il y a une meilleure facon de faire?Et bien sur est ce que quelqu'un sait d'ou vient mon probleme exprimé avant?

Merci d'avance pour votre aide

Laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 11h07   #2
Futur Membre du Club
 
Inscription : août 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : août 2007
Messages : 44
Points : 17
Points : 17
j'ai le meme principe que toi mais je passe par des liens avec une info GET

le code du lien
Code :
1
2
3
4
 
<?php
echo "<center><font face='papyrus'><a href='accueil.php?page=options'>Options du compte</a><br></font></center>";
?>
et sur la page accueil.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
if (isSet($_GET['page']))
{
	$cle = $_GET['page'];
}
$page['options'] = "options_compte.php";
// si on a cliqué sur un lien
if (!empty($cle))
{
	//il includ la page choisie
	include ("$page[$cle]");
}
else
{
	//ta pge par defaut
}
?>
j'utilise ca et ca marche tres bien
Seidris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 23h15   #3
Membre confirmé
 
Inscription : juillet 2007
Messages : 201
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 201
Points : 227
Points : 227
Déjà il y a des erreurs de syntaxe dans tes requêtes,

revois tes requêtes et certaines de tes lignes de codes. J'en ai lu quelques unes :
Code :
1
2
3
4
5
6
7
8
9
10
$sqlpac="select pac,client,nb_bulletins from pac where pac='".$pac."'";

	if(mysql_num_rows(tarequete)!=0){
		$tab_result=mysql_fetch_assoc($resultatclient);
		$pac=$tab_result['pac'];
		$nb_bulletins=$tab_result['nb_bulletins'];
	};		


 $sqlclient="SELECT pac, client, nb_bulletins FROM pac WHERE client ='".$client."'";
en plus si tu veux tester si une variable est renseignée ou non utilise isset... exemple if (isset($pac)){.......}
Saches qu'il y a une différence entre NULL et null.
En plus dans les propriétés de tes tables utilises les doubles quotes partout (parfois tu les utilises parfois non).
acirfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 23h26   #4
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut et les sessions

As-tu essayé avec les variables de sessions? Car tu récupères les variables POST mais pour perdurer d'un script à l'autre il faut que PHP puisse les récupérer. Et les variables superglobales $_POST n'ont pas la même portée que les variables $_SESSION.
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2007, 10h30   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Merci à tous pour vos réponses

En ce qui concerne les erreurs de syntaxe dans mes requetes, elles fonctionne tel quel et justement (chose bizarre oui je sais) si je mets les quotes, ca ne fonctionne plus (enfin bon c'est pas la le probleme)...

J'ai deja essayer avec les sessions mais j'ai beaucoup de mal à l'adapter à mon cas (en general, les sessions sont utilsées dans les cas de connexions de login, et sont effacés au bout d'un moment, ce qui n'est pas top dans mon cas...)

Merci aussi pour l'info entre la difference entre null et NULL je ne savais pas ca!

Bon je vais essayer de voir du coté des isset et aussi en passant par la methode get...

Merci encore pour votre aide!!

Laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2007, 10h44   #6
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut c'est quoi la différence?

Citation:
Envoyé par laetiheu
Merci aussi pour l'info entre la difference entre null et NULL je ne savais pas ca!
----
|
Selon le manuel PHP:
Il y a seulement une valeur de type NULL et c'est le mot-clé NULL, insensible à la casse.
|
-----

Vu que NULL est insensible à la casse, il faudra que l'on m'explique quelle est la différence.
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2007, 10h47   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
c'est bien ce qui me semblais.... Si quelqu'un d'autre pouvait nous eclairer sur la question...
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web