POPUP Java liste base données SQL/PHP
Résolu
sipherion
Messages postés
1809
Date d'inscription
Statut
Membre
Dernière intervention
-
lokidar -
lokidar -
Bonjour !
Je sais, le titre est compliqué mais je vais vous expliquer. Voila
J'ai une base de donnée qui correspond a l'enregistrement de composants (une gestion de stock). J'ai donc fait un petit site Intranet qui propose d'enregistrer un nouveau composant et également de visualiser la liste des composants enregistrés.
La liste des composants enregistrés se présente sous la forme d'un tableau, avec les colonnes (entre autres) Nom, description, etc.
Le problème est sur "Description". Comme j'ai construit mon tableau pour que les résultats ne s'affichent que sur une seule ligne, si le champs "Description" renseigné est trop important, cela va défigurer le tableau.
Solution bien chiante mise place :
if(strlen($description)>20) {
$descriptioncourte=substr($description,0,20);
}
else ($descriptioncourte=$description);
J'ai donc limité le nombre de caractères a $description qui va renommer ces informations en $descriptioncourte. $description va donc rester telle quelle. J'ai eu alors une idée : Pourquoi ne pas mettre en place un système qui n'affiche que $descriptioncourte, et que quand on passe la souris dessus, il nous ouvre une petite popup qui va nous afficher le reste de la description ?!?
Allez hop, c'est partit. J'ai trouvé le script qu'il me fallait a cette adresse :
http://css.alsacreations.com/xmedia/exemples/popup/popup2.htm
Je l'ai donc mis en place, et ca marche presque. Déja, je n'ai pas de popup comme dans l'exemple mais simplement le texte qui se rajoute au bas de la page (si vous avez une idée pour cette erreur, je vous remercie d'avance). Et ensuite, et c'est pour ca que je poste ce message, quand je passe sur les différentes descriptions, il ne m'affiche rien, sauf sur la derniere chargée par le système (il y a un système de récupération de données dans une base de données MySQL) ou la il me montre la valeur de $description.
S'il le faut je peux faire un copier coller de tout le code, mais avant de faire ca je voulais savoir si certaines personnes étaient bien calées en Javascript
Je sais, le titre est compliqué mais je vais vous expliquer. Voila
J'ai une base de donnée qui correspond a l'enregistrement de composants (une gestion de stock). J'ai donc fait un petit site Intranet qui propose d'enregistrer un nouveau composant et également de visualiser la liste des composants enregistrés.
La liste des composants enregistrés se présente sous la forme d'un tableau, avec les colonnes (entre autres) Nom, description, etc.
Le problème est sur "Description". Comme j'ai construit mon tableau pour que les résultats ne s'affichent que sur une seule ligne, si le champs "Description" renseigné est trop important, cela va défigurer le tableau.
Solution bien chiante mise place :
if(strlen($description)>20) {
$descriptioncourte=substr($description,0,20);
}
else ($descriptioncourte=$description);
J'ai donc limité le nombre de caractères a $description qui va renommer ces informations en $descriptioncourte. $description va donc rester telle quelle. J'ai eu alors une idée : Pourquoi ne pas mettre en place un système qui n'affiche que $descriptioncourte, et que quand on passe la souris dessus, il nous ouvre une petite popup qui va nous afficher le reste de la description ?!?
Allez hop, c'est partit. J'ai trouvé le script qu'il me fallait a cette adresse :
http://css.alsacreations.com/xmedia/exemples/popup/popup2.htm
Je l'ai donc mis en place, et ca marche presque. Déja, je n'ai pas de popup comme dans l'exemple mais simplement le texte qui se rajoute au bas de la page (si vous avez une idée pour cette erreur, je vous remercie d'avance). Et ensuite, et c'est pour ca que je poste ce message, quand je passe sur les différentes descriptions, il ne m'affiche rien, sauf sur la derniere chargée par le système (il y a un système de récupération de données dans une base de données MySQL) ou la il me montre la valeur de $description.
S'il le faut je peux faire un copier coller de tout le code, mais avant de faire ca je voulais savoir si certaines personnes étaient bien calées en Javascript
A voir également:
- POPUP Java liste base données SQL/PHP
- Fuite données maif - Guide
- Liste déroulante excel - Guide
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Base de registre - Guide
12 réponses
Je pense être assez blindé en javascript pour pouvoir te tirer de là.
Si j'ai bien compris, seule la derniere description (derniere chargée donc) fonctionne. J'imagine donc que l'erreur doit venir d'une mauvaise utilisation de variable dans le script (unique pour toutes tes descriptions par exemple), d'ou le fait que seule la dernière soit loadée correctement.
Si tu met le code je serais succeptible de te réponse, du moins j'espère pour toi ;)
Si j'ai bien compris, seule la derniere description (derniere chargée donc) fonctionne. J'imagine donc que l'erreur doit venir d'une mauvaise utilisation de variable dans le script (unique pour toutes tes descriptions par exemple), d'ou le fait que seule la dernière soit loadée correctement.
Si tu met le code je serais succeptible de te réponse, du moins j'espère pour toi ;)
Voici le code Javascript "popup.js" :
gk=window.Event?1:0; // navigateurs Gecko ou IE
D=document;popup=encours=0
function ctrl(e)
{
de=!D.documentElement.clientWidth?D.body:D.documentElement // IE6
sx=gk?pageXOffset:de.scrollLeft //scroll h
sy=gk?pageYOffset:de.scrollTop //scroll v
x=gk?e.pageX:event.clientX+sx; //curseur x
y=gk?e.pageY:event.clientY+sy; //curseur y
el=gk?e.target:event.srcElement;
if(!el.tagName)el=el.parentNode; // noeud #text
if(el.className == 'pop')
{
popup = D.getElementById(el.href.substring(el.href.lastIndexOf('#') + 1)).style;
if(popup!=encours) // seulement si changement
{
encours.display='none';
with(popup){display="block";left=x+'px';top=y+10+'px';}
encours=popup;
}
} else {encours.display='none';encours=0}
}
D.onmousemove=ctrl
// charge la feuille de style des popups.
D.write('<style type="text/css">@import url(popup.css);</style>')
gk=window.Event?1:0; // navigateurs Gecko ou IE
D=document;popup=encours=0
function ctrl(e)
{
de=!D.documentElement.clientWidth?D.body:D.documentElement // IE6
sx=gk?pageXOffset:de.scrollLeft //scroll h
sy=gk?pageYOffset:de.scrollTop //scroll v
x=gk?e.pageX:event.clientX+sx; //curseur x
y=gk?e.pageY:event.clientY+sy; //curseur y
el=gk?e.target:event.srcElement;
if(!el.tagName)el=el.parentNode; // noeud #text
if(el.className == 'pop')
{
popup = D.getElementById(el.href.substring(el.href.lastIndexOf('#') + 1)).style;
if(popup!=encours) // seulement si changement
{
encours.display='none';
with(popup){display="block";left=x+'px';top=y+10+'px';}
encours=popup;
}
} else {encours.display='none';encours=0}
}
D.onmousemove=ctrl
// charge la feuille de style des popups.
D.write('<style type="text/css">@import url(popup.css);</style>')
Ca m'a l'air un peu fouilli comme code tout ca :)
Pourrais tu également mettre ton code PHP qui utilise cette fonction javascript ?
Je dois y aller donc je verrais ca demain.
Pourrais tu également mettre ton code PHP qui utilise cette fonction javascript ?
Je dois y aller donc je verrais ca demain.
Oui, et pourtant c'est du copier/coller du lien que j'ai donné un peu plus haut. J'ai fait ca parce que mes connaissances sont également limitées en Java...
Je suis également parti du boulot, et je ne peux pas modifier la base car je n'ai pas d'accès a distance.
@Demain.
Je suis également parti du boulot, et je ne peux pas modifier la base car je n'ai pas d'accès a distance.
@Demain.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok cest parti !
$requete="select * from composant order by $u $ob";
$resultat=mysql_query($requete);
echo("<table border=1 width='100%'><tr><td><center><b>Type</b> <a href='listcomp.php?page=typeasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=typedesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Nom<b> <a href='listcomp.php?page=nomasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=nomdesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Marque<b> <a href='listcomp.php?page=marqueasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=marquedesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Description<b></center></td>
<td><center><b>Lieu<b> <a href='listcomp.php?page=lieuasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=lieudesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Date d'achat<b> <a href='listcomp.php?page=dateaasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=dateadesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Quantité<b> <a href='listcomp.php?page=quantiteasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=quantitedesc.php'><img border=0 src='images/desc.png'></a></center></td></tr>");
if(mysql_num_rows($resultat)){
while($ligne=mysql_fetch_assoc($resultat)){
$categorie=$ligne['categorie'];
$nom=$ligne['nom'];
$marque=$ligne['marque'];
$qu=$ligne['quantite'];
$date_achat=$ligne['date_achat'];
$jour=$ligne['jour'];
$mois=$ligne['mois'];
$annee=$ligne['annee'];
$lieu=$ligne['lieu'];
$id_c=$ligne['id_c'];
$description[$id_c]=$ligne['description'];
if(strlen($description[$id_c])>20) {
$descriptioncourte[$id_c]=substr($description[$id_c],0,20);
}
else ($descriptioncourte[$id_c]=$description[$id_c]);
echo ("<tr><td>".$categorie."</td>
<td>".$nom."</td>
<td>".$marque."</td>
<td><a href='#pop".$id_c."' class='pop'>".$descriptioncourte[$id_c]."<a></td>
<td>".$lieu."</td>
<td>".$date_achat."</td>
<td><center>".$qu."</center></td></tr>");
}}
echo("</table><div id='pop".$id_c."'>
<h1>Description</h1>
<p>".$description[$id_c]."</p>
</div></div>");
Certains trucs sont bizzares, c'est normal mais si tu ne comprends pas, alors demande moi plus de détails sur telle ou telle variable.
$requete="select * from composant order by $u $ob";
$resultat=mysql_query($requete);
echo("<table border=1 width='100%'><tr><td><center><b>Type</b> <a href='listcomp.php?page=typeasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=typedesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Nom<b> <a href='listcomp.php?page=nomasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=nomdesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Marque<b> <a href='listcomp.php?page=marqueasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=marquedesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Description<b></center></td>
<td><center><b>Lieu<b> <a href='listcomp.php?page=lieuasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=lieudesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Date d'achat<b> <a href='listcomp.php?page=dateaasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=dateadesc.php'><img border=0 src='images/desc.png'></a></center></td>
<td><center><b>Quantité<b> <a href='listcomp.php?page=quantiteasc.php'><img border=0 src='images/asc.png'></a> <a href='listcomp.php?page=quantitedesc.php'><img border=0 src='images/desc.png'></a></center></td></tr>");
if(mysql_num_rows($resultat)){
while($ligne=mysql_fetch_assoc($resultat)){
$categorie=$ligne['categorie'];
$nom=$ligne['nom'];
$marque=$ligne['marque'];
$qu=$ligne['quantite'];
$date_achat=$ligne['date_achat'];
$jour=$ligne['jour'];
$mois=$ligne['mois'];
$annee=$ligne['annee'];
$lieu=$ligne['lieu'];
$id_c=$ligne['id_c'];
$description[$id_c]=$ligne['description'];
if(strlen($description[$id_c])>20) {
$descriptioncourte[$id_c]=substr($description[$id_c],0,20);
}
else ($descriptioncourte[$id_c]=$description[$id_c]);
echo ("<tr><td>".$categorie."</td>
<td>".$nom."</td>
<td>".$marque."</td>
<td><a href='#pop".$id_c."' class='pop'>".$descriptioncourte[$id_c]."<a></td>
<td>".$lieu."</td>
<td>".$date_achat."</td>
<td><center>".$qu."</center></td></tr>");
}}
echo("</table><div id='pop".$id_c."'>
<h1>Description</h1>
<p>".$description[$id_c]."</p>
</div></div>");
Certains trucs sont bizzares, c'est normal mais si tu ne comprends pas, alors demande moi plus de détails sur telle ou telle variable.
Je pensea voir trouvé d'ou ca vient.
Dans ta fonction javascript, tu as ceci :
Ce qui signigie que ca prend le style css de l'élément donc l'identifiant est égale à ce qui se trouve après le "#" situé dans la propriété href de l'élément source (émetteur).
Or, dans ton algo PHP, tu n'as qu'une seule div, celle de la fin, dans laquelle tu met effectivement la contenu de ta dernière description (puisque tu es en dehors de ta boucle while) :
Conclusion : ce que je te propose, c'est d'inclure ce bout de code dans ta boucle while, et je pense que ca devrait être mieux. Comme ceci donc :
Par contre je n'exclus pas le fait qu'il puisse y avoir d'autres erreurs...
Dans ta fonction javascript, tu as ceci :
popup = D.getElementById(el.href.substring(el.href.lastIndexOf('#') + 1)).style;
Ce qui signigie que ca prend le style css de l'élément donc l'identifiant est égale à ce qui se trouve après le "#" situé dans la propriété href de l'élément source (émetteur).
Or, dans ton algo PHP, tu n'as qu'une seule div, celle de la fin, dans laquelle tu met effectivement la contenu de ta dernière description (puisque tu es en dehors de ta boucle while) :
echo("</table><div id='pop".$id_c."'> <h1>Description</h1> <p>".$description[$id_c]."</p> </div></div>");
Conclusion : ce que je te propose, c'est d'inclure ce bout de code dans ta boucle while, et je pense que ca devrait être mieux. Comme ceci donc :
while($ligne=mysql_fetch_assoc($resultat)){ $categorie=$ligne['categorie']; $nom=$ligne['nom']; $marque=$ligne['marque']; $qu=$ligne['quantite']; $date_achat=$ligne['date_achat']; $jour=$ligne['jour']; $mois=$ligne['mois']; $annee=$ligne['annee']; $lieu=$ligne['lieu']; $id_c=$ligne['id_c']; $description[$id_c]=$ligne['description']; if(strlen($description[$id_c])>20) { $descriptioncourte[$id_c]=substr($description[$id_c],0,20); } else ($descriptioncourte[$id_c]=$description[$id_c]); echo ("<tr><td>".$categorie."</td> <td>".$nom."</td> <td>".$marque."</td> <td><a href='#pop".$id_c."' class='pop'>".$descriptioncourte[$id_c]."<a></td> <td>".$lieu."</td> <td>".$date_achat."</td> <td><center>".$qu."</center></td></tr>"); echo("</table><div id='pop".$id_c."'> <h1>Description</h1> <p>".$description[$id_c]."</p> </div></div>"); }}
Par contre je n'exclus pas le fait qu'il puisse y avoir d'autres erreurs...