javascript + PHP/SQL

Statut
N'est pas ouverte pour d'autres réponses.

KAMI

spim spam spoum
Bonjour bonjour :-D

J'ai comme qui dirait un petit problème avec mon site internet ^^.


Voila un code javascript qui permet de faire défiler le texte de bas en haut. Je ne rencontre pas de problème avec ce code. Mais plutôt avec la page que j'inclus dans le code.
PHP:
	<script language="Javascript1.2">
	var marqueecontents='<?php include('affnew.php') ?>'
	if (document.all)
		document.write('<marquee direction="up" scrollAmount=3 style="width:267px;height:460px;border:1px black solid">'+marqueecontents+'</marquee>')

	function regenerate(){
		window.location.reload()
	}
	function regenerate2(){
		if (document.layers){
			setTimeout("window.onresize=regenerate",450)
	intializemarquee()
		}
	}		

	function intializemarquee(){
	document.cmarquee01.document.cmarquee02.document.write(marqueecontents)
	document.cmarquee01.document.cmarquee02.document.close()
	thelength=document.cmarquee01.document.cmarquee02.document.height
	scrollit()
	}

	function scrollit(){
		if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
			document.cmarquee01.document.cmarquee02.top-=speed
			setTimeout("scrollit()",100)
		}
		else{
			document.cmarquee01.document.cmarquee02.top=marqueeheight
			scrollit()
		}
	}

	window.onload=regenerate2
	</script>
Voici donc la page que je veux inclure: Comme vous pouvez le voir, j'ai appel à ma requête SQL ( idnews, titre, previsu). les 2 premiers marchent sans problèmes tandis que quand je mets le 3ème, mon script ne marchent plus du tout... Je n'ai plus rien qui s'affiche même pas le border qui définissent la taille du cadre de mon script.
PHP:
<?php

	$query1="SELECT * FROM news WHERE idnews=21";
	$reponse1=mysql_query($query1) or die ("La requête \"$query1\"n'a pas pu s'exécutée");
		echo('<table border="1">');
			while($donnees1=mysql_fetch_assoc($reponse1)){
				echo('<tr>');
					echo('<td width="250px"><a href="index.php.php?idnews='.$donnees1['idnews'].')"><span class="titre">'.$donnees1['titre'].'</span></a><br/>'.$donnees1['previsu'].'</td>');
				echo('</tr>');
			}
		echo('</table>');
?>
Ou qu'il est le problème avec mon code ? :dead: :-'
 

Bartdude

Touriste
Essaie en retirant l'include, avec juste une chaine de caractères dans ton javascript pour marqueecontents.

Aussi je sais pas mais on dirait quand-même qu'il manque un paquet de ";" à la fin de tes lignes PhP ou surtout Javascript.

Si ton code marche bien quand tu retires l'include, teste la page d'include toute seule... es-tu sur qu'elle renvoie bien de l'info ?
 
1er
OP
KAMI

KAMI

spim spam spoum
Bon bon après bataille, je crois que j'ai réussi à isoler le problème même si je ne sais toujours pas comment le résoudre. Le problème ne viendrait pas du code en lui même mais plutôt des requêtes SQL. Car certaine petit phrase passe sans problème tandis que d'autre c'est niet.

Quels sont les caractères qui sont interdits en JS ? :-D
 

Tifox

ou pas
En JS, fait surtout gaffe aux apostrophes et/ou au guillemets : si ta chaine est encadrée par des apostrophe et qu'il y a une apostrophe dedans, ça va foirer. Idem pour les guillemets.

Pour les requetes SQL, la c'est les apostrophes qui peuvent poser problème.
 
1er
OP
KAMI

KAMI

spim spam spoum
En JS, fait surtout gaffe aux apostrophes et/ou au guillemets : si ta chaine est encadrée par des apostrophe et qu'il y a une apostrophe dedans, ça va foirer. Idem pour les guillemets.

Pour les requetes SQL, la c'est les apostrophes qui peuvent poser problème.

Effectivement, je recontre le problème quand il y a des ' "dans mon textarea. Que puis je faire pour résoudre le problème ?

Il y a donc un problème au niveau des caractères spéciaux qui sont passés au code JS.

Il n'y a pas une fonction pour formater ce genre de caractères ?
 

Tifox

ou pas
Il faut échapper ' ou ", c'est a dire rajouter un \ devant.

En php, il existe une fonction qui fait ça (je n'arrive pas a retomber sur le nom :oops: ), par contre, en JS de base, je ne pense pas que ça existe (mais il existe des fonctions pour modifier/remplacer des caractère dans une chaine).

EDIT : c'est addslashes en php la fonction
 
1er
OP
KAMI

KAMI

spim spam spoum
En effet c'est en rapport à la chaine de caractère qui vient de ma base de données que le problème se situe.

J'essaye de formater ma chaine mais je rencontre quelques petits soucis on va dire ^^

PHP:
$cutted=substr($_POST['contenunew'], 0, 15);
$addpoint=$cutted."..";
$addbr=nl2br($addpoint);
$format=ereg_replace('<br />', '\n', $addbr);
$previsu=addslashes($format);
J'ai l'impression que c'est la fonction addslashes qui ne marche pas correctement

C'est $previsu que je place dans ma base de données.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut