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 29/01/2008, 20h43   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 95
Points : 25
Points : 25
Par défaut [PHP-JS] Probleme Javascript et PHP

Bonjour @ tous,

je me présente car c'est mon premier post :
Boub, 24ans, Herblay 95.

Je débute dans la programmation php/mysql et j'ai un problème avec du javascript dans PHP.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 // début du tableau ( hors boucle )
echo '<table cellpadding=\'0\' cellspacing=\'0\'>';
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req)) 
    {
    // on affiche les informations de l'enregistrement en cours
	echo '<table border=\'0\' width=\'100%\' cellpadding=\'0\' cellspacing=\'0\'><tr><td onMouseOut=\'javascript:this.style.background=#FFFFFF\' onMouseOver=\'javascript:this.style.background=#C5E682\'><tabLe border=\'0\' width=\'100%\'><tr>';
	echo '<td class=\'epnumber\'>'.$data['episode'].'</td>';
	echo '<td class=\'eptitle\'>'.$data['title'].'</td>';
	echo '<td class=\'taille\'>'.$data['size'].'</td>';
	echo '<td class=\'epdl\'><a href='.$data['url'].'>afficher</a></td>';
	echo '</tr></table></td></tr></table>';
    } 
 
// fin du tableau html ( hors boucle )
echo '</table>';
Je ne sais pas pourquoi, ce script :
Code :
onMouseOut=\'javascript:this.style.background=#FFFFFF\' onMouseOver=\'javascript:this.style.background=#C5E682\'
ne fonctionne pas. Alors qu'il fonctionne dans un document HTML basic. Je pense avoir un problème avec le " ou ' mais je n'en suis pas sure. Je ne suis meme pas sure de savoir si il est possible d'utiliser ce code dans mon fichier.

Merci pour votre eclairage et bonne soirée !
Boub.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 20h55   #2
Membre du Club
 
Inscription : juillet 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : juillet 2007
Messages : 70
Points : 63
Points : 63
Envoyer un message via MSN à _phoenix_
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php 
 // début du tableau ( hors boucle )
echo '<table cellpadding="0" cellspacing="0">';
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
$data = mysql_fetch_array($req);
 
foreach($data as $row)
{
    // on affiche les informations de l'enregistrement en cours
	echo '<table border="0" width="100%" cellpadding="0" cellspacing="0"><tr><td onMouseOut="this.style.background=#FFFFFF" onMouseOver="this.style.background=#C5E682"><table border="0" width="100%"><tr>';
	echo '<td class="epnumber">'.$row["episode"].'</td>';
	echo '<td class="eptitle">'.$row["title"].'</td>';
	echo '<td class="taille">'.$row["size"].'</td>';
	echo '<td class="epdl"><a href="'.$row["url"].'">afficher</a></td>';
	echo '</tr></table></td></tr></table>';
} 
 
// fin du tableau html ( hors boucle )
echo '</table>';
L'utilisation des simples quote pour des attributs de code html est prohibé.
Preferes les doubles quotes.
_phoenix_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 22h11   #3
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Essaye en entourant tes codes couleurs de quotes :
Code :
1
2
 
echo '<td onMouseOut="this.style.background=\'#FFFFFF\' " onMouseOver="this.style.background=\'#C5E682\'"><table border="0" width="100%"><tr>';
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 22h37   #4
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 95
Points : 25
Points : 25
Merci pour votre aide, mais avec les 2 modifications j'ai ça :
Code :
Parse error: syntax error, unexpected $end in /home.36/s/e/r/site/www/test/test.php on line 41
Je continue de chercher à modifier les quotes etc, en long en large en travers !!!
Boub.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 11h36   #5
Nouveau Membre du Club
 
Avatar de Saintux
 
Homme Arnaud Fernandés
Étudiant
Inscription : janvier 2008
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Fernandés
Âge : 20
Localisation : Réunion

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 39
Points : 26
Points : 26
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php 
 // début du tableau ( hors boucle )
echo '<table cellpadding="0" cellspacing="0">';
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
$data = mysql_fetch_array($req);
 
foreach($data as $row)
{
    // on affiche les informations de l'enregistrement en cours
	echo '<table border="0" width="100%" cellpadding="0" cellspacing="0"><tr><td onMouseOut="this.style.background=#FFFFFF" onMouseOver="this.style.background=#C5E682"><table border="0" width="100%"><tr>';
	echo '<td class="epnumber">'.$row["episode"].'</td>';
	echo '<td class="eptitle">'.$row["title"].'</td>';
	echo '<td class="taille">'.$row["size"].'</td>';
	echo '<td class="epdl"><a href="'.$row["url"].'">afficher</a></td>';
	echo '</tr></table></td></tr></table>';
} 
 
// fin du tableau html ( hors boucle )
echo '</table>';
 
?>
et à la place de mysql_fetch_array($req); je mettrais mysql_fetch_assoc($req); suffisant pour ce que tu veux faire et prend moins de ressources.
Saintux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 12h01   #6
Membre éclairé
 
Inscription : décembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 426
Points : 313
Points : 313
Effectivement si ton code JS est après le php, faut fermer la balise PHP, s'il est dedans faut mettre un echo
Eric93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 18h46   #7
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 95
Points : 25
Points : 25
Re et merci pour votre aide mais ca ne marche toujours pas. Pour etre sure, je vous donne tout le code présent sur la page (j'aurais du le faire avant) :

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
<?php 
// on se connecte à MySQL
$db = mysql_connect('xxxx', 'xxxx', 'xxxx'); 
 
// on seléctionne la base
mysql_select_db('xxxx',$db); 
 
// on crée la requete SQL
$sql = 'SELECT episode,title,size,url FROM xxxx ORDER BY id DESC'; 
 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
 
 // début du tableau ( hors boucle )
echo '<table cellpadding="0" cellspacing="0">';
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req)) 
    {
 // début du tableau ( hors boucle )
echo '<table cellpadding="0" cellspacing="0">';
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
$data = mysql_fetch_array($req);
 
foreach($data as $row)
{
    // on affiche les informations de l'enregistrement en cours
	echo '<table border="0" width="100%" cellpadding="0" cellspacing="0"><tr><td onMouseOut="this.style.background=#FFFFFF" onMouseOver="this.style.background=#C5E682"><table border="0" width="100%"><tr>';
	echo '<td class="epnumber">'.$row["episode"].'</td>';
	echo '<td class="eptitle">'.$row["title"].'</td>';
	echo '<td class="taille">'.$row["size"].'</td>';
	echo '<td class="epdl"><a href="'.$row["url"].'">afficher</a></td>';
	echo '</tr></table></td></tr></table>';
} 
 
// fin du tableau html ( hors boucle )
echo '</table>';
// on ferme la connexion à mysql
mysql_close(); 
?>
qui me met cette erreur :

Code :
Parse error: syntax error, unexpected $end in /home.36/s/e/r/serietor/www/test/pb_saison1.php on line 41
C'est à dire a la derniere ligne mais je ne comprend pas pourquoi
C'est ma premiere tentative de "codage manuel"

Merci d'avance !
Boub.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 19h30   #8
Membre du Club
 
Inscription : juillet 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : juillet 2007
Messages : 70
Points : 63
Points : 63
Envoyer un message via MSN à _phoenix_
Salut,
Tu as simplement oublié de supprimer ces deux lignes dans ton code :

Code :
1
2
3
 
while($data = mysql_fetch_array($req)) 
    {
L'erreur php provient du fait que tu ne ferme pas ton while, il y a que la balise d'ouverture.

Tu peut donc le supprimer (le while), tu n'en as plus besoin vu que tu utilises maintenant foreach.

Simon
_phoenix_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h05.


 
 
 
 
Partenaires

Hébergement Web