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 06/10/2011, 14h57   #1
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Par défaut Modifier variable après un clic

Bonjour

Dans ce code j'affiche la semaine avec la variable $semaine obtenue par :
J'ai placé deux liens pour obtenir la semaine d'avant et d'après, voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<table>
<tr>
<td>
<a href="#" onclick="<?php $newSemaine=$semaine-1  ?>"><img id="SemMoins" src="images/previous.png" /></a>
</td>
<td style="padding-left:10px; padding-right:10px;">
<?php
$laSemaine= "Semaine $semaine";
$_SESSION['Semaine'] = $semaine; 
echo "<h3>".$laSemaine."</h3>";
?>
</td>
<td>
<a href="#" onclick="<?php $newSemaine=$semaine+1 ?>"><img id="SemPlus" src="images/next.png" /></a>
</td>
</tr>
</table>
Est-ce bien comme cela qu'il faut procéder ?
Par contre je ne vois pas comment faire pour pour modifier la valeur de ma variable placée dans le <h3> après le clic d'un lien
Pouvez-vous me conseiller
Merci
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 15h01   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
PHP c'est coté serveur, regarde le code source de ta page et tu comprendras
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 15h50   #3
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Ha oui c'est comme cela ?

Code :
onclick="<?php echo $newSemaine=$semaine-1  ?>
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 16h59   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par Vanessa48 Voir le message
Ha oui c'est comme cela ?

Code :
onclick="<?php echo $newSemaine=$semaine-1  ?>
ça change rien, ton PHP c'est coté serveur ce que tu cherches a faire est coté client ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 09h44   #5
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Désolée, mais je ne vois pas comment faire
Je ne suis pas une fer de lance en Php
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 10h20   #6
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 808
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 808
Points : 1 523
Points : 1 523
Tu ne comprends pas l'implication en fait.

PHP est un langage serveur, lorsque le navigateur affiche la page internet, le code a déjà été exécuté et résolu.
Ce que PHP envoi au navigateur c'est le code résolu, à savoir un contenu FIXE.

Pour avoir un contenu variant il faut renvoyer des requêtes au serveur pour lui demander de recalculer la réponse. Donc soit avec un changement de page (formulaire, lien) soit avec une requête asynchrone (Ajax en Javascript).

Je te conseillerai dans un premier temps de consulter des cours sur le PHP et la transmission de données.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 12h54   #7
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
J'ai consultée la Doc et si j'ai bien compris
pour récupérer la variable je fais :

Code :
<?php echo $_GET['$newSemaine']; ?>
Mais je ne comprends pas ce que je dois écrire dans le onclick de mon lien car le lien et le <h3> a actualiser sont sur la meme page
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 13h25   #8
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 808
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 808
Points : 1 523
Points : 1 523
Pourquoi utiliser un onclick pour changer de page ?
Code php :
<a href="maPage.php?variable=<?php echo $variable; ?>">Ma page</a>
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 13h44   #9
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Apparemment, tu ne veux pas comprendre que PHP est exécuté coté serveur. Cela signifie que son rôle est de générer une page HTML. Une fois cette page générée, elle est envoyée au navigateur et PHP n'est plus accessible.
Arrivée au navigateur, le code HTML est interprétée et affichée mais elle ne communique plus avec le serveur.
Ce que tu demandes est donc impossible à réaliser : une fois la page affichée, le contexte PHP qui l'a générée n'existe plus !
Si tu veux envoyer des informations au serveur, il faut appeler une nouvelle page (par exemple dans un lien ou via un formulaire) en passant des paramètres dans l'URL (pour un lien ou un formulaire en méthode GET) ou dans le corps de la requête HTTP (méthode POST). Si les paramètres d'un lien doivent être ajoutés dynamiquement, il faut le faire en JavaScript.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/10/2011, 15h08   #10
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Donc dans ma page principale entre les liens, je remplace mon <h3> par une <div> dans laquelle je fais un include de la page où se trouvera uniquement la variable qui se trouvait dans le <h3>

C'est possible ca ?
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 16h24   #11
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

vu ta problématique, je pense que AJAX pourra résoudre ton problème.
La procédure :
1 - Le onclick va appeler une fonction javascript avec comme paramètre ton numéro de semaine courante et l'opération (1 ou -1).
2- la fonction va faire un appel ajax avec les mêmes paramètres sur un autre fichier php.
3 - ce fichier va faire l'opération de la semaine -1 et semaine + 1 puis les renvoyer.
4 - il te suffira de renvoyer ces retours dans les bons champs.

Cette solution est utile je pense car il n'y a pas de problèmes de calculs de semaine (que se passe-t-il à 52 semaines + 1 ou à 1 semaine - 1 ?).
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 09/10/2011, 15h31   #12
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Merci pour ton aide

Je vais essayer car je ne connais pas bien l'Ajax, étant habituée à développer en aspx
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 17h58   #13
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
J'ai fait le premier exemple donné sur le lien http://siddh.developpez.com/articles/ajax/

Il se compose de deux pages : index.html et ajax.php

Est-il possible de faire cela sur une seule page ?
Est-ce code qu'il faut modifier pour cela ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
function go(){
	var xhr = getXhr()
	// On défini ce qu'on va faire quand on aura la réponse
        xhr.onreadystatechange = function(){
	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
	if(xhr.readyState == 4 && xhr.status == 200){
	alert(xhr.responseText);
	}
	}
	xhr.open("GET","ajax.php",true);
	xhr.send(null);
	}
Désolée d'insister, mais pour moi l'Ajax c'est nouveau
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 22h04   #14
Futur Membre du Club
 
Développeuse Web
Inscription : octobre 2011
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Développeuse Web

Informations forums :
Inscription : octobre 2011
Messages : 17
Points : 18
Points : 18
T'es pas obligée de faire ça en AJAX. Tout dépend... Clairement, faut que tu comprennes comment marche PHP à la base.

Bref, il y a + simple. Si tu t'en fiches que la page soit rechargée, tu peux tout simplement recharger la même page avec tes liens en te faisant passer une variable +1 ou -1 que PHP utilisera pour générer à nouveau la page.

Par ex:

Code :
1
2
<a href="tapage.php?semaine=-1"><img id="SemMoins" src="images/previous.png" /></a>
<a href="tapage.php?semaine=1"><img id="SemPlus" src="images/next.png" /></a>
Et en haut de ta page tu recupère ta variable URL (ton -1 ou ton 1) :
Code :
$ChangeSemaine  = $_GET['semaine'];
Et c'est seulement là que tu peux faire un
Code :
$newSemaine=$semaine+$ChangeSemaine;
Est-ce que j'ai été assez claire ?
A+
mazamazine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 23h09   #15
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Merci pour ton aide, mais j'ai un beug sur cette ligne :

Code :
$ChangeSemaine  = $_GET['semaine'];
Avec ce message : Undefined index
Cette ligne de code, je l'ai bien mise au début de ma page :
Code :
1
2
3
4
5
<?php
session_start();
$ChangeSemaine  = $_GET['semaine'];
include ('connect.php');
?>
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 00h01   #16
Futur Membre du Club
 
Développeuse Web
Inscription : octobre 2011
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Développeuse Web

Informations forums :
Inscription : octobre 2011
Messages : 17
Points : 18
Points : 18
tant que t'as pas cliqué sur l'un ou l'autre de te liens, ton $_GET est vide puisque t'as pas encore envoyé la variable. T'as pas essayé de cliquer dessus ?

D'ailleurs sont où tes liens là-dedans ?
mazamazine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 08h11   #17
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Si j'ai essayé de cliquer sur mes liens
Je te donne mon code complet

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
<?php
session_start();
$ChangeSemaine  = $_GET['semaine'];
include ('connect.php');
?>
<!DOCTYPE html>
<html>
<head>
 
</head>
<body>
<script type='text/JavaScript'>
</script>
<div data-role="page" data-theme="b">
	<div data-role="content" data-theme="b" style="text-align:center;">
		<div id="InfoDate" style="text-align:center; background-color:#333333; color:#FFFFFF; border-color: 2px solid #333333;">
				<?php 
				$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
				$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
 				$dateDuJour = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y");
 				echo "Nous sommes le ". $dateDuJour;
				$semaine = date("W");
				$year=date("Y");
				echo " et la semaine ". $semaine;
				$laSemaine= "Semaine $semaine";
				?>
			</div><!-- InfoDate -->
		<div id=TitrePlanning style="text-align:center; background-color:#EAEAEA; color:Red;">
			<table>
				<tr>
					<td>
						<a href="essai_planning.php?semaine=-1"><img id="SemMoins" src="images/previous.png" /></a>
					</td>
					<td style="padding-left:10px; padding-right:10px;">
					<?php
					//$semaine=42;
					$laSemaine= "Semaine $semaine";
					$_SESSION['Semaine'] = $semaine; 
					echo "<h3>".$laSemaine."</h3>";
					?>
					</td>
					<td>
						<a href="essai_planning.php?semaine=+1"><img id="SemMoins" src="images/next.png" /></a>
					</td>
				</tr>
			</table>
			</div><!-- TitrePlanning -->
	</div><!-- Fin Content -->
	</div><!-- Fin Page -->
</body>
</html>
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 16h49   #18
Futur Membre du Club
 
Développeuse Web
Inscription : octobre 2011
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Développeuse Web

Informations forums :
Inscription : octobre 2011
Messages : 17
Points : 18
Points : 18
Ok, bon alors déjà t'avais pas utilisée ta variable URL mais bon du coup j'ai vu ton code et là ça marche pour moi comme ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
				$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
				$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
 				$dateDuJour = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y");
 				echo "Nous sommes le ". $dateDuJour;
				if (!isset($ChangeSemaine)) {$semaine = date("W");} else {$semaine = $ChangeSemaine;}
				$next_semaine = $semaine+1;
				$prev_semaine = $semaine-1;
				$year=date("Y");
				echo " et la semaine ". $semaine;
				$laSemaine= "Semaine $semaine";
				?>
Et tes liens doivent être comme ça :

Code :
1
2
<a href="essai_planning.php?semaine=<?echo$prev_semaine;?>">...</a>
<a href="essai_planning.php?semaine=<?echo$next_semaine;?>">...</a>
Ceci dit y'a d'autres trucs bizarres. Je suis pas une pro mais il me semble qu'attribuer une variable à une superglobale comme tu fais ça va pas. À vérifier toutefois parce que les sessions je ne connais pas bien
Code :
$_SESSION['Semaine'] = $semaine;
mazamazine 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 01h00.


 
 
 
 
Partenaires

Hébergement Web