8797 sujets

Développement web côté serveur, CMS

Kikou tout le monde

Bon je risque d'avoir un peu de mal à me faire comprendre, mais je vais tenter d'être le plus clair possible.

J'ai repris le script suivant pour mon site. Le but étant de pouvoir afficher sur mon site une de ces "pop up" avec des infos de ma BDD.

Le soucis c'est que j'en utilise plusieurs (de BDD). Ici on va en garder 2. La première affiche les infos qu'on voit sur la page. La seconde des infos sur les panoplies. Et je voudrais que les infos de cette 2e base soient affichées dans la dite pop up en fonction de l'objet qui lui est associée.

Le soucis c'est qu'avec mon code ce qui est affiché dans la pop up ne varie pas selon l'objet, c'est toujours le même contenu.

Voilà j'espère avoir été clair. Même si ça va peut être compliqué les choses je met le code PHP de la page. J'espère que vous pourrez m'aider.

Merci


<?php
	echo '
	<a name="debut"></a>
	<div id="conteneur">
		<div id="banniere">
			<img src="images/banniere.png">
		</div>
		<div id="menu">
			<ul id="liens">
				<li class="marginRight"><a href="../index.php">Accueil</a></li>
				<li class="marginRight"><a href="antares.php">Cordonnerie</a></li>
				<li class="marginRight"><a href="bottes.php">Bottes</a></li>
				<li class="marginRight"><a href="ceintures.php">Ceintures</a></li>
				<li class="marginRight"><a href="congratulations/livre.php">Livre d\'or</a></li>
				<li class="clr"></li>
			</ul>
		</div>
		<div id="recherche">
			<form id="form1" name="form1" method="post" action="?">
				<select name="select" onchange="WinOpen(this.value)">
					<option value="" selected="selected" class="clair"> Selectionnez une paire de bottes </option>';
						$sql = 'SELECT * FROM bottes WHERE lvl_bottes < '.$choix.' AND lvl_bottes > '.$choix2.' ORDER BY lvl_bottes';
						$result = mysql_query($sql);
						$line = 0;
						while ($row = mysql_fetch_array($result)) {
							echo '<option value="#'.$row['nom_bottes'].'" class="';
							if ($line == 0) {
								echo 'sombre';
								$line = 1;
							}
							else {
								echo 'clair';
								$line = 0;
							}
							echo '"> '.$row['nom_bottes'].' </option>';						
						}
				echo '
				</select>
			</form>
		</div>
		<div id="contenu">
		<center>
			<form id="form2" name="form2" method="post" action="?">
				<input name="20" type="submit" value="1-20" />
				<input name="40" type="submit" value="21-40" />
				<input name="60" type="submit" value="41-60" />
				<input name="80" type="submit" value="61-80" />
				<input name="120" type="submit" value="81-120" />
				<input name="1xx" type="submit" value="121 +" />
			</form>
		</center><br />';
		$sql2 = 'SELECT * FROM bottes WHERE lvl_bottes < '.$choix.' AND lvl_bottes > '.$choix2.' ORDER BY lvl_bottes ASC';
		$result2 = mysql_query($sql2);
		while ($row2 = mysql_fetch_array($result2)) {	
			echo '
			<a name="'.$row2['nom_bottes'].'"></a>
			<table cellspacing="0" width="100%">
				<tr>';
					if ($row2['image_bottes'] == '') {
						$image = 'defaut.png';
					}
					else {
						$image = 'bottes/'.$row2['image_bottes'];
					}
					echo '<td rowspan="3" width="120px" class="image"><img src="images/'.$image.'"></td>
					<td class="entete"><span class="titre">'.$row2['nom_bottes'];
					if ($row2['panoplie_bottes'] == '') {
						echo '';
					}
					else {
						$sql_panop = 'SELECT * FROM panoplies WHERE id_pano LIKE \''.$row2['panoplie_bottes'].'\'';
						$result_panop = mysql_query($sql_panop);
						while ($row_p = mysql_fetch_array($result_panop)) {
							echo '<br /><span class="panoplie">(<a href="#pop2" class="pop">'.$row_p['nom_pano'].'</a>)</span>';
							echo '<div id="pop2">
									<h1>'.$row_p['nom_pano'].'</h1>
										<p>';
										if ($row_p['bonus2'] != '') {
											echo '<u>2 items :</u> '.$row_p['bonus2'].'<br />';
										}
										if ($row_p['bonus3'] != '') {
											echo '<u>3 items :</u> '.$row_p['bonus3'].'<br />';
										}
										if ($row_p['bonus4'] != '') {
											echo '<u>4 items :</u> '.$row_p['bonus4'].'<br />';
										}
										if ($row_p['bonus5'] != '') {
											echo '<u>5 items :</u> '.$row_p['bonus5'].'<br />';
										}
										if ($row_p['bonus6'] != '') {
											echo '<u>6 items :</u> '.$row_p['bonus6'].'<br />';
										}
										if ($row_p['bonus7'] != '') {
											echo '<u>7 items :</u> '.$row_p['bonus7'].'<br />';
										}
										if ($row_p['bonus8'] != '') {
											echo '<u>8 items :</u> '.$row_p['bonus8'].'<br />';
										}
										
										echo '</p>
								  </div>';
						}
					}
					echo '
					<br /><span class="level">Niveau '.$row2['lvl_bottes'].'</span>
					</td>
					<td class="fleche">
						<a href="#debut" title="Revenir en haut de page"><img src="images/fleche.png"></a>
					</td>
				</tr>
				<tr>
					<td class="soustitre1">Recette</td>
					<td class="soustitre2">Caract&eacute;ristiques</td>
				</tr>
				<tr>
					<td class="recette" width="50%">';
					$sql3 = 'SELECT * FROM bottes_ingredients WHERE id_bottes = '.$row2['id_bottes'];
					$result3 = mysql_query($sql3);
					while ($row3 = mysql_fetch_array($result3)) {
						echo '<img src="images/puce.png" />&nbsp;'.$row3['ingredient'].'<br />';
					}
					echo '
					</td>
					<td class="carac" width="50%">';
					$sql4 = 'SELECT * FROM bonus_bottes WHERE id_bottes = '.$row2['id_bottes'];
					$result4 = mysql_query($sql4);
					while ($row4 = mysql_fetch_array($result4)) {
						if ($row4['bonus'] == '') {
							echo 'Bonus inconnus';
						}
						else {
							echo '<img src="images/puce.png" />&nbsp;'.$row4['bonus'].'<br />';
						}
					}
					echo '
					</td>
				</tr>
				<tr>
					<td class="prix">';
					if ($row2['prix_bottes'] == '') {
						echo 'Non craft&eacute;';
					}
					else {
						echo $row2['prix_bottes'].' kamas';
					}
					echo '
					</td>
					<td colspan="2" class="texte">'.$row2['description_bottes'].'</td>
				</tr>
			</table><br />';
		}
	echo '	
		</div>	
	</div>';
?>
Le script récupère correctement l'id_pano, car j'arrive ensuite à afficher correctement le nom_pano qui en résulte. Donc ce coté la pas de soucis.
Je pensais plutôt à ça:
(...)
while ($row_p = mysql_fetch_array($result_panop)) {
  echo '<br /><span class="panoplie">(<a href="#[b]pop2[/b]" class="pop">'.$row_p['nom_pano'].'</a>)</span>';
  echo '<div id="[b]pop2[/b]">
(...)

Je supposes qu'il s'aggit de tes pop-up qui, du coup, on toutes la même id.
Modifié par Necromantik (30 Oct 2007 - 17:37)
J'ai essayé de changer le code en ça :

else {
						$sql_panop = 'SELECT * FROM panoplies WHERE id_pano LIKE \''.$row2['panoplie_bottes'].'\'';
						$result_panop = mysql_query($sql_panop);
						while ($row_p = mysql_fetch_array($result_panop)) {
							echo '<br /><span class="panoplie">(<a href="#pop'.$row_p['id_pano'].'" class="pop">'.$row_p['nom_pano'].'</a>)</span>';
							echo '<div id="pop'.$row_p['id_pano'].'">
									<h1>'.$row_p['nom_pano'].'</h1>
										<p>';
										if ($row_p['bonus2'] != '') {
											echo '<u>2 items :</u> '.$row_p['bonus2'].'<br />';
										}
										if ($row_p['bonus3'] != '') {
											echo '<u>3 items :</u> '.$row_p['bonus3'].'<br />';
										}
										if ($row_p['bonus4'] != '') {
											echo '<u>4 items :</u> '.$row_p['bonus4'].'<br />';
										}
										if ($row_p['bonus5'] != '') {
											echo '<u>5 items :</u> '.$row_p['bonus5'].'<br />';
										}
										if ($row_p['bonus6'] != '') {
											echo '<u>6 items :</u> '.$row_p['bonus6'].'<br />';
										}
										if ($row_p['bonus7'] != '') {
											echo '<u>7 items :</u> '.$row_p['bonus7'].'<br />';
										}
										if ($row_p['bonus8'] != '') {
											echo '<u>8 items :</u> '.$row_p['bonus8'].'<br />';
										}
										
										echo '</p>
								  </div>';
						}


Mais ça m'affiche les informations directement dans la page, et non plus dans les pop up. Par contre ce sont les bonnes informations.

Donc comment les remettre dans les pop up Smiley sweatdrop
Je suppose que le problème s'est déplacé dans le CSS, mais je n'arrive pas à en venir à bout.

J'ai intégré le CSS de la "pop up" directement dans la balise le style de la balise DIV pour être sur que l'ID de la pop up n'interviennent pas dans l'affichage des données.

J'ai de nouveau la pop up qui s'affiche bien, mais à nouveau les données qui sont toujours les mêmes...
bonjour,

Pour le css sans une page en ligne (qui est le mieux) ou un code on peux pas trop d'aider.
Modifié par Halindel (31 Oct 2007 - 14:26)
Le code de la pop up donne ceci

else {
						$sql_panop = 'SELECT * FROM panoplies WHERE id_pano LIKE \''.$row2['panoplie_bottes'].'\'';
						$result_panop = mysql_query($sql_panop);
						while ($row_p = mysql_fetch_array($result_panop)) {
							echo '<br /><span class="panoplie">(<a href="#pop'.$row_p['id_pano'].'" class="pop">'.$row_p['nom_pano'].'</a>)</span>';
							echo '<div id="pop'.$row_p['id_pano'].'" style="position: absolute; display: none; width: 20em; border: 3px double black ;background: #f5f5dc; z-index: 500; font-size: 80%;">
									<h1>'.$row_p['nom_pano'].'</h1>
										<p>';
										if ($row_p['bonus2'] != '') {
											echo '<u>2 items :</u> '.$row_p['bonus2'].'<br />';
										}
										if ($row_p['bonus3'] != '') {
											echo '<u>3 items :</u> '.$row_p['bonus3'].'<br />';
										}
										if ($row_p['bonus4'] != '') {
											echo '<u>4 items :</u> '.$row_p['bonus4'].'<br />';
										}
										if ($row_p['bonus5'] != '') {
											echo '<u>5 items :</u> '.$row_p['bonus5'].'<br />';
										}
										if ($row_p['bonus6'] != '') {
											echo '<u>6 items :</u> '.$row_p['bonus6'].'<br />';
										}
										if ($row_p['bonus7'] != '') {
											echo '<u>7 items :</u> '.$row_p['bonus7'].'<br />';
										}
										if ($row_p['bonus8'] != '') {
											echo '<u>8 items :</u> '.$row_p['bonus8'].'<br />';
										}
										
										echo '</p>
								  </div>';
						}
					}


Et le code CSS restant de la pop up

p {
margin: 0 0.3em;
}
h1 {
font-size: 110%;
margin: 0 0 0.5em 0;
border-bottom: 1px solid black;
background: white url(top.gif) left top repeat-x;
color: black;
text-align: center;
}
Euh .... C'est un peu leger Smiley lol

Si tu as repris le tuto je pense que tu devrais donner un nom a tes popup ici


echo '<div id="pop'.$row_p['id_pano'].'" style="position: absolute; display: none; width: 20em; border: 3px double black ;background: #f5f5dc; z-index: 500; font-size: 80%;">

tu devrais lui donner un nom générique comme cela dans ton css tout tes popup auront le même css. car l'id est utilisé par le javascript. Comme cela tu pourrai enlever tout le style que 'il y a dans ta div.
Je ne suis pas sur d'avoir bien saisi ce que tu viens de dire, pourrais tu me donner un exemple? Smiley confused
au lien d'avoir le code plus haut tu pourrais avoir cela.


echo '<div id="pop'.$row_p['id_pano'].'" class="bouhlapopup">


et dans ton css :

.bouhlapopup {
position: absolute;
display: none;
width: 20em;
border: 3px double black;
background: #f5f5dc;
z-index: 500;
font-size: 80%;


Ensuite j'ai pas trop compris le probleme... Tu affiches bien la popup mais c'est la mauvais qui s'affiche ? Dans ce cas il faudrai verifier au niveau du javascript non ?

Car si tu affiches le code source de ta page tu as bien toutes tes popups de crée ou non ?
Le soucis c'est pas les pop up. Elles s'affichent bien quand je viens mettre la souris sur le lien. Par contre le contenu (qui dépend des infos de la BDD) est toujours le même, alors qu'il devrait changer selon le lien.

J'essaye la modification que tu ma soufflé ce midi et je reviens donner des nouvelles.
Bon visiblement ça vient de ma base de donnée. Certaines informations affichées sont les bonnes, d'autres non. Donc il faut que je revoi ma liaison entre mes 2 bases j'ai l'impression.