8797 sujets

Développement web côté serveur, CMS

Bonjour,

je suis actuellement entrain de développer un système de news défilante et dynamique. C'est à dire que les informations seront entrées dans la base de données et un script ira les extraire de la base afin de les diffuser sur la page d'accueil du site.

Pour cela, les informations sont intégré en javascript dans un Array.
Mon problème se situe, au niveau de mon PHP lorsque je vais les chercher et que je veux les stocker chacune dans une variable.

Je m'explique : Je me connecte à ma base de données, j'ouvre la table correspondante et je sélectionne tout. Une fois que c'est fait, je compte le nombre de ligne que l'on définira pour cet exemple au nombre de 3.
Mon tableau quant à lui commence à 0, donc je défini que l'id du message correspond au nombre de lignes (3) - 1. J'aurais donc 0, 1, 2 .

Après ce que je voudrais c'est pouvoir intégrer dynamiquement chaque message dans sa variable javascript correspondante. Donc j'ai fait une boucle PHP qui commence à i=0 et qui se termine donc à l'id du message qui est le nombre de lignes - 1. Et dans cette boucle je dis que pour chaque ligne le titre de la news correspond à la premiere colonne de la table, que le corps du texte c'est la 2eme ... . Et mon problème arrive à ce niveau là.

En fait quand je cherche les infos (au nombre de 3 donc) ce code me sorts bien les 3 infos comme je veux, mais la variable i quant à elle reste à 0 pour chacune des news.

Pour que je puisse avoir la variable i qui passe à 0 1 2 il faut que je rajoute encore une boucle FOR dans ma boucle WHILE, mais là le problème c'est que la variable i aura bien pour valeur 0 1 2 mais chaque news sera répété autant de fois que de lignes (donc ici 3 fois).

Pour être plus clair je vais vous montrer le petit bout de code.


	<?php
		include "inc/db.lib.inc.php";
		
		$db = db_connect();
		db_database();
				
		$query = "SELECT * FROM krea_news";
		$req   = mysql_query($query)or die('erreur');
		$nb_ligne = mysql_num_rows($req);
		$id_mess = $nb_ligne-1;
				
		for ($i=0; $i<=$id_mess; $i++)
		{
			while($row = mysql_fetch_row($req))
			{
					
				$titre[$i] = $row[1];
				$message[$i] = $row[2];
				$photo[$i] = $row[3];
						
				$mess[$i]="ejs_scroll_message[$i]='<a href='#' class='ejs_scroll'><b><i>$titre[$i]</i></b><br/><br/>$message[$i]<br/></a>';";
				echo $mess[$i]."&nbsp;";
			}
		}
	?>


Avec ce code j'obtiens ce résultat :

ejs_scroll_message[0]='Test news1

insérer une news .... essayons !';



ejs_scroll_message[0]='bonjour

on va la tester encore une fois';



ejs_scroll_message[0]='bonjour2

dddddddddddddddddd
';



Comme vous pouvez le voir ejs_scroll_message reste toujours à 0.

Si je veux donc incrémenter la variable i je suis obligé de rajouter une boucle FOR dans mon WHILE ce qui me donne :


       <?php
		include "inc/db.lib.inc.php";
		
		$db = db_connect();
		db_database();
				
		$query = "SELECT * FROM krea_news";
		$req   = mysql_query($query)or die('erreur');
		$nb_ligne = mysql_num_rows($req);
		$id_mess = $nb_ligne-1;
				
		for ($i=0; $i<=$id_mess; $i++)
		{
			while($row = mysql_fetch_row($req))
			{
				for ($i=0; $i<=$id_mess; $i++)
				{	
					$titre[$i] = $row[1];
					$message[$i] = $row[2];
					$photo[$i] = $row[3];
								
					$mess[$i]="ejs_scroll_message[$i]='<a href='#' class='ejs_scroll'><b><i>$titre[$i]</i></b><br/><br/>$message[$i]<br/></a>';";
					echo $mess[$i]."&nbsp;";
				}
			}
		}
	?>


Ce qui me donne donc comme résultat :

ejs_scroll_message[0]='Test news1

insérer une news .... essayons !';

ejs_scroll_message[1]='Test news1

insérer une news .... essayons !';

ejs_scroll_message[2]='Test news1

insérer une news .... essayons !';



ejs_scroll_message[0]='bonjour

on va la tester encore une fois';

ejs_scroll_message[1]='bonjour

on va la tester encore une fois';

ejs_scroll_message[2]='bonjour

on va la tester encore une fois';



ejs_scroll_message[0]='bonjour2

dddddddddddddddddd

ejs_scroll_message[1]='bonjour2

dddddddddddddddddd

ejs_scroll_message[2]='bonjour2

dddddddddddddddddd
';



Or ce que moi j'aimerais trouver c'est le code me donnant ce résultat ci :

ejs_scroll_message[0]='Test news1

insérer une news .... essayons !';



ejs_scroll_message[1]='bonjour

on va la tester encore une fois';



ejs_scroll_message[2]='bonjour2

dddddddddddddddddd
';



Je sais que ça doit ne tenir à pas grand chose, mais je tourne en rond.
Je n'arrive pas à faire la bonne boucle pour arriver à ce résultat.

Si quelqu'un pouvait bien m'aider, je lui en serait très reconnaissant.

Merci d'avance,

Arnaud S.
Modifié par bibi-arnaud (23 Jul 2008 - 11:34)
Salut,

ça ne peut pas fonctionner puisque tu fais 2 fois la boucle de lecture Smiley murf !

Pour rappel, si une requête $req ramène 3 résultats il faudra exécuter 3 fois la fonction mysql_fetch_row et pas 9.

Donc soit tu fais :
		$query = "SELECT * FROM krea_news";
		$req   = mysql_query($query)or die('erreur');
		$nb_ligne = mysql_num_rows($req);
		$id_mess = $nb_ligne-1;
				
		for ($i=0; $i<=$id_mess; $i++)
		{
			$row = mysql_fetch_row($req);
				$titre[$i] = $row[1];
				$message[$i] = $row[2];
				$photo[$i] = $row[3];
						
				$mess[$i]="ejs_scroll_message[$i]='<a href='#' class='ejs_scroll'><b><i>$titre[$i]</i></b><br/><br/>$message[$i]<br/></a>';";
				echo $mess[$i]." ";
		}
soit tu fais :
		$query = "SELECT * FROM krea_news";
		$req   = mysql_query($query)or die('erreur');
		$i = 0;
			while($row = mysql_fetch_row($req))
			{
					
				$titre[$i] = $row[1];
				$message[$i] = $row[2];
				$photo[$i] = $row[3];
						
				$mess[$i]="ejs_scroll_message[$i]='<a href='#' class='ejs_scroll'><b><i>$titre[$i]</i></b><br/><br/>$message[$i]<br/></a>';";
				echo $mess[$i]." ";
				$i ++;
			}

A+
Ah oui ok, donc il fallait que je fasse soit la boucle WHILE soit la FOR, mais pas les 2 en même temps.

C'est vrai que j'avais pas du tout pensé à le faire sous cette forme.

Merci beaucoup Heyoan.





Maintenant avec cette boucle qui me génère mes messages javascript, j'ai essayé donc d'intégrer ces derniers à mon script.

Le script à la base était comme ceci :


			ejs_scroll_largeur = 265;
			ejs_scroll_hauteur = 142;
			ejs_scroll_bgcolor = '#FFFFFF';
			/* Mettre ici le chemin de l'image de fond */
			ejs_scroll_background = "";
			/* Mettre ici le temps en secondes */
			ejs_scroll_pause_seconde = 10;

			ejs_scroll_message = new Array;
			ejs_scroll_message[0]='<a href="#" class="ejs_scroll">Bonjour, nous effectuons actuellement la mise en ligne de notre site web. Si vous rencontrez des difficultés de navigation, vous pouvez nous faire part de vos problèmes grâce à notre rubrique contact. Veuillez nous excuser de la gêne occasionnée.<br/><br/> ----------------------------------------</a>';
			ejs_scroll_message[1]='<a href="#" class="ejs_scroll" target="_blank"> <b><i>Idées sorties</i></b><br/><br/>La Sarre A Contes<br/> Festival itinérant <br/> du 19 juillet au 10 août 2008.<br/><br/>  ----------------------------------------</a>';
			
			function d(texte)
				{
				document.write(texte);
				}

			d('<DIV ID=ejs_scroll_relativ STYLE="position:relative;width:'+ejs_scroll_largeur+';height:'+ejs_scroll_hauteur+';background-color:'+ejs_scroll_bgcolor+';background-image:url('+ejs_scroll_background+')">');
			d('<DIV ID=ejs_scroll_cadre STYLE="position:absolute;width:'+(ejs_scroll_largeur-8)+';height:'+(ejs_scroll_hauteur-8)+';top:4;left:4;clip:rect(0 '+(ejs_scroll_largeur-8)+' '+(ejs_scroll_hauteur-8)+' 0)">');
			d('<div id=ejs_scroller_1 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;" CLASS=ejs_scroll>'+ejs_scroll_message[0]+'</DIV>');
			d('<div id=ejs_scroller_2 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:'+ejs_scroll_hauteur+';" CLASS=ejs_scroll>'+ejs_scroll_message[1]+'</DIV>');
			d('</DIV></DIV>');

			ejs_scroll_mode =1;
			ejs_scroll_actuel = 0;

			function ejs_scroll_start()
				{
				if(ejs_scroll_mode == 1)
					{
					ejs_scroller_haut = "ejs_scroller_1";
					ejs_scroller_bas = "ejs_scroller_2";
					ejs_scroll_mode = 0;
					}
				else
					{
					ejs_scroller_bas = "ejs_scroller_1";
					ejs_scroller_haut = "ejs_scroller_2";
					ejs_scroll_mode = 1;
					}
				ejs_scroll_nb_message = ejs_scroll_message.length-1;
				if(ejs_scroll_actuel == ejs_scroll_nb_message)
					ejs_scroll_suivant = 0;
				else
					ejs_scroll_suivant = ejs_scroll_actuel+1;
				if(document.getElementById)
					document.getElementById(ejs_scroller_bas).innerHTML = ejs_scroll_message[ejs_scroll_suivant];
				ejs_scroll_top = 0;
				if(document.getElementById)
					setTimeout("ejs_scroll_action()",ejs_scroll_pause_seconde*1000)
				}

			function ejs_scroll_action()
				{
				ejs_scroll_top -= 1;
				document.getElementById(ejs_scroller_haut).style.top = ejs_scroll_top;
				document.getElementById(ejs_scroller_bas).style.top = ejs_scroll_top+ejs_scroll_hauteur;
				if((ejs_scroll_top+ejs_scroll_hauteur) > 0)
					setTimeout("ejs_scroll_action()",10)
				else
					ejs_scroll_stop()
				}

			function ejs_scroll_stop()
				{
				ejs_scroll_actuel = ejs_scroll_suivant;
				ejs_scroll_start()
				}

			addLoadEvent(ejs_scroll_start);



On y voit bien les 2 lignes ejs_scroll_message[0] et ejs_scroll_message[1] que j'ai rentré en dur mais qui maintenant sont générées dynamiquement avec le code javascript. On voit bien que pour le ejs_scroll_message[0] on a une mise en page particulière et que pour les autres ejs_scroll_message qui suivent la mise en page sera unique.

Ce que j'ai donc essayé de faire c'est d'intégrer mon code PHP à mon script javascript afin d'intégrer les variable dynamique et de chercher et d'afficher donc autant de news qu'il y en a dans la base de donnée.


Voila le code que j'ai donc mis en place :


<script language="javascript" type="text/javascript">
			ejs_scroll_largeur = 265;
			ejs_scroll_hauteur = 142;
			ejs_scroll_bgcolor = '#FFFFFF';
			/* Mettre ici le chemin de l'image de fond */
			ejs_scroll_background = "";
			/* Mettre ici le temps en secondes */
			ejs_scroll_pause_seconde = 10;
			
			function d(texte)
							{
							document.write(texte);
							}
			
			ejs_scroll_message = new Array;
			
			
			d('<DIV ID=ejs_scroll_relativ STYLE="position:relative;width:'+ejs_scroll_largeur+';height:'+ejs_scroll_hauteur+';background-color:'+ejs_scroll_bgcolor+';background-image:url('+ejs_scroll_background+')">');
			d('<DIV ID=ejs_scroll_cadre STYLE="position:absolute;width:'+(ejs_scroll_largeur-8)+';height:'+(ejs_scroll_hauteur-8)+';top:4;left:4;clip:rect(0 '+(ejs_scroll_largeur-8)+' '+(ejs_scroll_hauteur-8)+' 0)">');
			
			<?php
				$db = db_connect();
				db_database();
						
				$query = "SELECT * FROM krea_news";

				$req   = mysql_query($query)or die('erreur');

				$nb_ligne = mysql_num_rows($req);

				$id_mess = $nb_ligne-1;
				
				for ($i=0; $i<=$id_mess; $i++)

					{
						$row = mysql_fetch_row($req);

						$titre[$i] = $row[1];
						$message[$i] = $row[2];
						$photo[$i] = $row[3];
						

						$mess[$i]="ejs_scroll_message[$i]='<a href='#' class='ejs_scroll'><b><i>$titre[$i]</i></b><br/><br/>$message[$i]<br/></a>';";
						
						
						if($i==0)
						{
							echo "d('<div id=ejs_scroller_1 style='position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;' CLASS=ejs_scroll>'+$mess[$i]+'</DIV>');";
						}
						else
						{
							echo "d('<div id=ejs_scroller_2 style='position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:'+ejs_scroll_hauteur+';' CLASS=ejs_scroll>'+$mess[$i]+'</DIV>');";
						}
					}
			?>
			
			//d('<div id=ejs_scroller_1 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;" CLASS=ejs_scroll>'+ejs_scroll_message[0]+'</DIV>');
			//d('<div id=ejs_scroller_2 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:'+ejs_scroll_hauteur+';" CLASS=ejs_scroll>'+ejs_scroll_message[1]+'</DIV>');
			d('</DIV></DIV>');

			ejs_scroll_mode =1;
			ejs_scroll_actuel = 0;

			function ejs_scroll_start()
				{
				if(ejs_scroll_mode == 1)
					{
					ejs_scroller_haut = "ejs_scroller_1";
					ejs_scroller_bas = "ejs_scroller_2";
					ejs_scroll_mode = 0;
					}
				else
					{
					ejs_scroller_bas = "ejs_scroller_1";
					ejs_scroller_haut = "ejs_scroller_2";
					ejs_scroll_mode = 1;
					}
				ejs_scroll_nb_message = ejs_scroll_message.length-1;
				if(ejs_scroll_actuel == ejs_scroll_nb_message)
					ejs_scroll_suivant = 0;
				else
					ejs_scroll_suivant = ejs_scroll_actuel+1;
				if(document.getElementById)
					document.getElementById(ejs_scroller_bas).innerHTML = ejs_scroll_message[ejs_scroll_suivant];
				ejs_scroll_top = 0;
				if(document.getElementById)
					setTimeout("ejs_scroll_action()",ejs_scroll_pause_seconde*1000)
				}

			function ejs_scroll_action()
				{
				ejs_scroll_top -= 1;
				document.getElementById(ejs_scroller_haut).style.top = ejs_scroll_top;
				document.getElementById(ejs_scroller_bas).style.top = ejs_scroll_top+ejs_scroll_hauteur;
				if((ejs_scroll_top+ejs_scroll_hauteur) > 0)
					setTimeout("ejs_scroll_action()",10)
				else
					ejs_scroll_stop()
				}

			function ejs_scroll_stop()
				{
				ejs_scroll_actuel = ejs_scroll_suivant;
				ejs_scroll_start()
				}

			addLoadEvent(ejs_scroll_start);
		</script>


Mais bien sûr lorsque je regarde ma page en question, les news ne s'affichent bien sûr pas.

Est ce que j'ai mal intégré le PHP dans le javascript ? Smiley confus Smiley confus

Je m'excuse pour toutes ces question, mais j'essaie de comprendre et de trouver mon erreur mais je n'y arrive pas Smiley decu


Je viens de remarquer que j'ai réfléchi comme un idiot puisque l'on ne peut pas executer du PHP (côté serveur) dans du Javascript côté client Smiley confused .
Mais n'y aurait t'il pas un moyen pour que je puisse intégrer mes variables dans ce code ?

Modifié par bibi-arnaud (10 Jul 2008 - 18:00)
Salut,

J'ai un peu la flemme de lire (et de tester) tout ça... une page en ligne ne serait pas du luxe Smiley cligne .
bibi-arnaud a écrit :
Je viens de remarquer que j'ai réfléchi comme un idiot puisque l'on ne peut pas executer du PHP (côté serveur) dans du Javascript côté client Smiley confused .
Mais n'y aurait t'il pas un moyen pour que je puisse intégrer mes variables dans ce code ?
On ne peut effectivement pas générer du PHP depuis Javascript mais on peut tout à fait générer du code Javascript à l'aide de PHP.
Heyoan a écrit :
Salut,

J'ai un peu la flemme de lire (et de tester) tout ça... une page en ligne ne serait pas du luxe Smiley cligne .
On ne peut effectivement pas générer du PHP depuis Javascript mais on peut tout à fait générer du code Javascript à l'aide de PHP.


Pour ce qui est du module de news, tu peux voir ce que cela donne sur http://www.s245310343.onlinehome.fr/ c'est le petit encart actualité.

Actuellement comme montré dans le premier code, les news qui défilent y sont inscrites en dures dans le code javascript.

Mais j'ai fait un module PHP qui permet de rentrer la titre et le contenu de la news.
Et en fait ce que j'aurais voulu faire c'est que les news soient intégrés dynamiquement dans le javascript en y incorporant toutes les news qui figurent en fait dans la base de données créés par le module PHP cité juste ci-dessus.


Merci de donner un peu de ton temps, c'est sympa
Smiley confused
Modifié par bibi-arnaud (23 Jul 2008 - 11:34)
Re',

alors pour commencer et comme on est sur Alsacréations, il serait peut-être temps de faire des pages respectueuses des standards (notamment en renseignant un DOCTYPE et si possible en séparant le contenu et la présentation : on y verrais plus clair dans ton code !) Smiley lol !

Sinon je ne vois pas bien où se situe la difficulté Smiley rolleyes ... il suffit de partir du code auquel tu veux arriver au final (prendre au moins 3 messages) et de faire ta boucle PHP pour alimenter les champs variables (ainsi que pour incrémenter les valeurs de id et de top qui est à priori égale à $i * 142) Smiley rolleyes ...

Une autre difficulté est qu'à priori tes messages ne sont pas formatés de la même façon donc je ne vois pas bien comment automatiser... peut-être qu'il serait plus facile de formater directement le message à afficher dans un champ de ta table (<a .... </a>) Smiley murf !
Bonjour,

pour ce qui est des Doctypes je te renvoie à ce sujet, qui explique pourquoi il y a des pages sans Doctypes. Ce ne sont que les pages avec la galerie en Javascript qui ne contiennent pas de Doctypes le temps que je résolve le problème.


Pour ce qui est du formatage des messages, si si, le formatage sera le même. Il y en a juste un qui exceptionnellement n'est pas formaté de la même façon du fait qu'il a été ajouté en dur. Mais sinon les messages seront bien formatés de la même façon, c'est à dire, la valeur récupéré dans titre sera en gras, puis après on aura le corps du message en dessous.


Pour le script en lui même et la boucle PHP, c'est bien ce que j'avais fait, mais le truc c'est que comment récupérer les variables PHP sachant qu'on ne peut insérer du PHP comme ça dans du Javascript. Et si je mets le code PHP en dehors du javascript et que j'insère les différentes variables il ne me les reconnait pas.


Pour info voila la boucle PHP que j'ai.



<?php
				$db = db_connect();
				db_database();
						
				$query = "SELECT * FROM krea_news";

				$req   = mysql_query($query)or die('erreur');

				$nb_ligne = mysql_num_rows($req);

				$id_mess = $nb_ligne-1;
				
				for ($i=0; $i<=$id_mess; $i++)

					{
						$row = mysql_fetch_row($req);

						$titre[$i] = $row[1];
						$message[$i] = $row[2];
						$photo[$i] = $row[3];
						

						$mess[$i]="ejs_scroll_message[$i]='<a href='#' class='ejs_scroll'><b><i>$titre[$i]</i></b><br/><br/>$message[$i]<br/></a>';";
						
						
						if($i==0)
						{
							echo "d('<div id=ejs_scroller_1 style='position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;' CLASS=ejs_scroll>'+$mess[$i]+'</DIV>');";
						}
						else
						{
							echo "d('<div id=ejs_scroller_2 style='position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:'+ejs_scroll_hauteur+';' CLASS=ejs_scroll>'+$mess[$i]+'</DIV>');";
						}
					}
			?>





Pour ce qui est du PHP dans le javascript, je t'invite à regarder mon dernier code posté juste au dessus.


Merci d'avance;

Arnaud S.
Salut,
bibi-arnaud a écrit :
mais le truc c'est que comment récupérer les variables PHP sachant qu'on ne peut insérer du PHP comme ça dans du Javascript. Et si je mets le code PHP en dehors du javascript et que j'insère les différentes variables il ne me les reconnait pas.
Euh... je ne comprends toujours pas ce que tu veux dire Smiley rolleyes .

Un pitit exemple :
<script type="text/javascript">
<?php
require_once('connexion.php');
$compteur = 10;
$sql = "Select titre, message from krea_news";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
	echo 'alert("titre = '.$row['titre'].' \nmessage = '.$row['message'].'\ncompteur = '.$compteur.'");'."\n";
	$compteur +=10;
}
?>
</script>
Encore une fois, il faut partir du code que tu veux obtenir au final et dans une deuxième phase le générer avec PHP en corrigeant ce qui n'a pas fonctionné (affichage du code source de la page et correction).
Désolé si je m'exprime mal, c'est vrai que pour exprimer ce problème j'ai un peu de mal Smiley confus Smiley confused

En fait ce que je voulais dire, c'est : ce n'est pas possible d'avoir le début du script javascript en code javascript, puis insérer au milieu de celui ci un morceau PHP qui va être ma boucle et dont les echo généré vont être le code javascript comme par exemple
$mess[$i]="ejs_scroll_message[$i]='<a href='#' class='ejs_scroll'><b><i>$titre[$i]</i></b><br/><br/>$message[$i]<br/></a>';";
puis de terminer le code javascript par la fin du script de nouveau en javascript.

En gros si c'est possible ou pas d'insérer une boucle PHP au milieu d'un javascript.

Pour ton explication, si je comprends bien, il faudrait que tout mon code javascript soit généré en PHP, c'est à dire si je prend en exemple juste le début de mon javascript ça donnerai.

<script language="javascript" type="text/javascript">

			echo 'ejs_scroll_largeur = 265;';

			echo 'ejs_scroll_hauteur = 142;';

			echo 'ejs_scroll_bgcolor = '#FFFFFF';';

			

			echo 'ejs_scroll_background = "";';

			

			echo 'ejs_scroll_pause_seconde = 10;';

                        .........................

</script>
 



Désolé, mais j'essaie d'assimiler au mieux, afin de tout comprendre et ne rien laisser de côté.

En tout cas je te remercie déjà pour ton aide que tu m'as déjà donné depuis le début du sujet, c'est vraiment sympa de ta part.

Smiley smile
bibi-arnaud a écrit :
En fait ce que je voulais dire, c'est : ce n'est pas possible d'avoir le début du script javascript en code javascript, puis insérer au milieu de celui ci un morceau PHP qui va être ma boucle et dont les echo généré vont être le code javascript...
Si : c'est tout à fait possible.


En gros si c'est possible ou pas d'insérer une boucle PHP au milieu d'un javascript.
C'est tout à fait possible.


Pour ton explication, si je comprends bien, il faudrait que tout mon code javascript soit généré en PHP
Non : pas nécessairement.

Tu n'as en fait que les quelques lignes d('<div ... à générer (comme dans le code que tu as montré plus haut d'ailleurs).

Un autre pitit exemple :
<script type="text/javascript">
alert('première ligne avant PHP);
alert('deuxième ligne avant PHP);
alert('troisième ligne avant PHP);
<?php
require_once('connexion.php');
$compteur = 10;
$sql = "Select titre, message from krea_news";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
?>
	alert("titre = <?php echo $row['titre']; ?> \nmessage = <?php echo $row['message']; ?> \ncompteur = <?php echo $compteur; ?>");
<?php
	$compteur +=10;
}
?>
alert('encore une ligne après PHP);
</script>
Smiley langue
Modifié par Heyoan (15 Jul 2008 - 14:23)
Merci beaucoup Heyoan !!

Ton dernier exemple m'a beaucoup aidé.

Je me suis basé sur cette construction mélangeant le javascript et les insertions de code PHP.

Résultat mon problème est résolu Smiley smile !!!!

J'ai réussi à aller pêcher toutes mes infos dans la bases de données et les importées dans mon code javascript.


J'affiche donc ici mon code final au cas où des personnes seraient elles aussi confrontées à un tel problème en voulant insérer du contenu issu d'une base de données dans du script JAVASCRIPT.


<script language="javascript" type="text/javascript">
			ejs_scroll_largeur = 265;
			ejs_scroll_hauteur = 142;
			ejs_scroll_bgcolor = '#FFFFFF';
			/* Mettre ici le chemin de l'image de fond */
			ejs_scroll_background = "";
			/* Mettre ici le temps en secondes */
			ejs_scroll_pause_seconde = 10;
			
			function d(texte)
							{
							document.write(texte);
							}
			
			ejs_scroll_message = new Array;
			
			
			
			d('<DIV ID=ejs_scroll_relativ STYLE="position:relative;width:'+ejs_scroll_largeur+';height:'+ejs_scroll_hauteur+';background-color:'+ejs_scroll_bgcolor+';background-image:url('+ejs_scroll_background+')">');
			d('<DIV ID=ejs_scroll_cadre STYLE="position:absolute;width:'+(ejs_scroll_largeur-8)+';height:'+(ejs_scroll_hauteur-8)+';top:4;left:4;clip:rect(0 '+(ejs_scroll_largeur-8)+' '+(ejs_scroll_hauteur-8)+' 0)">');
			
			<?php
				$db = db_connect();
				db_database();
						
				$query = "SELECT * FROM krea_news";

				$req   = mysql_query($query)or die('erreur');

				$nb_ligne = mysql_num_rows($req);

				$id_mess = $nb_ligne-1;
				
				for ($i=0; $i<=$id_mess; $i++)

					{
						$row = mysql_fetch_row($req);

						$titre[$i] = $row[1];
						$message[$i] = $row[2];
						$photo[$i] = $row[3];
						
                                                $mess[$i]=str_replace(array("\r\n", "\n", "\r" ), "<br />", $message[$i]);
						?>
						ejs_scroll_message[<?php echo $i;?>]=<?php echo '"<b><i>'.$titre[$i].'</i></b><br/><br/>'.$mess[$i].'<br/>"';?>;
						
						<?php
						if($i==0)
						{
						?>
						
			d('<div id=ejs_scroller_1 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;" CLASS=ejs_scroll>'+ejs_scroll_message[<?php echo $i?>]+'</DIV>');
						
						<?php
						}
						else
						{
						?>
			d('<div id=ejs_scroller_2 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:'+ejs_scroll_hauteur+';" CLASS=ejs_scroll>'+ejs_scroll_message[<?php echo $i;?>]+'</DIV>');
						<?php
						}
					}
			?>
			d('</DIV></DIV>');

			ejs_scroll_mode =1;
			ejs_scroll_actuel = 0;

			function ejs_scroll_start()
				{
				if(ejs_scroll_mode == 1)
					{
					ejs_scroller_haut = "ejs_scroller_1";
					ejs_scroller_bas = "ejs_scroller_2";
					ejs_scroll_mode = 0;
					}
				else
					{
					ejs_scroller_bas = "ejs_scroller_1";
					ejs_scroller_haut = "ejs_scroller_2";
					ejs_scroll_mode = 1;
					}
				ejs_scroll_nb_message = ejs_scroll_message.length-1;
				if(ejs_scroll_actuel == ejs_scroll_nb_message)
					ejs_scroll_suivant = 0;
				else
					ejs_scroll_suivant = ejs_scroll_actuel+1;
				if(document.getElementById)
					document.getElementById(ejs_scroller_bas).innerHTML = ejs_scroll_message[ejs_scroll_suivant];
				ejs_scroll_top = 0;
				if(document.getElementById)
					setTimeout("ejs_scroll_action()",ejs_scroll_pause_seconde*1000)
				}

			function ejs_scroll_action()
				{
				ejs_scroll_top -= 1;
				document.getElementById(ejs_scroller_haut).style.top = ejs_scroll_top;
				document.getElementById(ejs_scroller_bas).style.top = ejs_scroll_top+ejs_scroll_hauteur;
				if((ejs_scroll_top+ejs_scroll_hauteur) > 0)
					setTimeout("ejs_scroll_action()",10)
				else
					ejs_scroll_stop()
				}

			function ejs_scroll_stop()
				{
				ejs_scroll_actuel = ejs_scroll_suivant;
				ejs_scroll_start()
				}

			addLoadEvent(ejs_scroll_start);
		</script>



En tout cas merci Heyoan tu m'as été d'une très très grande aide.
En plus maintenant grâce à toi j'ai réussi à mieux comprendre comment mélanger le PHP et le Javascript.

Ce sujet est donc maintenant [RESOLU ] Smiley biggrin Smiley biggrin ... enfin !!

Maintenant me reste à essayer de "customiser" ce script en rajoutant une photo rataché à chaque news.
Modifié par bibi-arnaud (15 Jul 2008 - 17:54)
Bravo ! Smiley smile

Il ne te restera plus qu'à générer un code valide du genre :
<div id="ejs_scroll_relativ" style="..." ... >
Smiley ravi
Modifié par Heyoan (15 Jul 2008 - 17:16)
Heyoan a écrit :
Bravo ! Smiley smile

Il ne te restera plus qu'à générer un code valide du genre :
<div id="ejs_scroll_relativ" style="..." ... >
Smiley ravi



Smiley biggrin Ah ça pas de pb, mon but de toute façon est d'avoir un code valide W3C et en XHTML 1.0 Strict de préférence.

Suis entrain de m'atteler à cette tâche. Mais pour cela il va d'abord falloir que j'arrive à résoudre le problème de mon Doctype qui me fout en l'air ma galerie javascript Smiley decu

Mais en tout cas merci beaucoup !

D'ailleurs petite modif' du code avec le rajout de cette ligne

$mess[$i]=str_replace(array("\r\n", "\n", "\r" ), "<br />", $message[$i]);
pour éviter les bugs lors d'un retour chariot.
Rebonjour,

finalement je viens de voir que le sujet n'est pas résolu à 100% Smiley decu .

En fait le module fonctionne très bien ... sous MFF.
Par contre sous IE il ne veut pas m'afficher les messages Smiley decu

De quoi cela peut il bien venir ??

Actuellement le message a affiché, est le suivant :

Horaires d'ouverture.

L'agence est ouverte :

du lundi au vendredi
de 8h30 à 12h00 et de 13h30 à 18h00.


Je me demande si cela pourrait venir à cause des simples quotes et qu'il y aurait un problème entre le mélange simple et double quote dans le code que IE n'aimerait pas forcement.


En gros pour le code ça donne ça sous IE lorsque j'affiche la source.



<div id="actu_accueil">
		<script language="javascript" type="text/javascript">
			ejs_scroll_largeur = 265;
			ejs_scroll_hauteur = 142;
			ejs_scroll_bgcolor = '#FFFFFF';
			/* Mettre ici le chemin de l'image de fond */
			ejs_scroll_background = "";
			/* Mettre ici le temps en secondes */
			ejs_scroll_pause_seconde = 10;
			
			function d(texte)
							{
							document.write(texte);
							}
			
			ejs_scroll_message = new Array;
			
			
			
			d('<DIV ID=ejs_scroll_relativ STYLE="position:relative;width:'+ejs_scroll_largeur+';height:'+ejs_scroll_hauteur+';background-color:'+ejs_scroll_bgcolor+';background-image:url('+ejs_scroll_background+')">');
			d('<DIV ID=ejs_scroll_cadre STYLE="position:absolute;width:'+(ejs_scroll_largeur-8)+';height:'+(ejs_scroll_hauteur-8)+';top:4;left:4;clip:rect(0 '+(ejs_scroll_largeur-8)+' '+(ejs_scroll_hauteur-8)+' 0)">');
			
									ejs_scroll_message[0]=<a href="#" target="blank" class="lien_actu"><b><i>Horaires d'ouverture</i></b><br/><br/>L'agence est ouverte :<br /><br />du lundi au vendredi<br />de 8h30 à 12h00 et de 13h30 à 18h00.<br/></a>;
						
												
			d('<div id=ejs_scroller_1 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;" CLASS=ejs_scroll>'+ejs_scroll_message[0]+'</DIV>');
						
									
			d('</DIV></DIV>');

			ejs_scroll_mode =1;
			ejs_scroll_actuel = 0;

			function ejs_scroll_start()
				{
				if(ejs_scroll_mode == 1)
					{
					ejs_scroller_haut = "ejs_scroller_1";
					ejs_scroller_bas = "ejs_scroller_2";
					ejs_scroll_mode = 0;
					}
				else
					{
					ejs_scroller_bas = "ejs_scroller_1";
					ejs_scroller_haut = "ejs_scroller_2";
					ejs_scroll_mode = 1;
					}
				ejs_scroll_nb_message = ejs_scroll_message.length-1;
				if(ejs_scroll_actuel == ejs_scroll_nb_message)
					ejs_scroll_suivant = 0;
				else
					ejs_scroll_suivant = ejs_scroll_actuel+1;
				if(document.getElementById)
					document.getElementById(ejs_scroller_bas).innerHTML = ejs_scroll_message[ejs_scroll_suivant];
				ejs_scroll_top = 0;
				if(document.getElementById)
					setTimeout("ejs_scroll_action()",ejs_scroll_pause_seconde*1000)
				}

			function ejs_scroll_action()
				{
				ejs_scroll_top -= 1;
				document.getElementById(ejs_scroller_haut).style.top = ejs_scroll_top;
				document.getElementById(ejs_scroller_bas).style.top = ejs_scroll_top+ejs_scroll_hauteur;
				if((ejs_scroll_top+ejs_scroll_hauteur) > 0)
					setTimeout("ejs_scroll_action()",10)
				else
					ejs_scroll_stop()
				}

			function ejs_scroll_stop()
				{
				ejs_scroll_actuel = ejs_scroll_suivant;
				ejs_scroll_start()
				}

			addLoadEvent(ejs_scroll_start);
		</script>



Merci d'avance.

Arnaud S.
Modifié par bibi-arnaud (23 Jul 2008 - 11:42)