Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 28/02/2006, 10h18   #1
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Par défaut [Conception] Affichage

Bonjour

je veux afficher des images, avec un bouton radio, juste en dessous de l'image.

Je veux 6 images par lignes et qu'ensuite on passe à une autre ligne, comment puis je faire ?

et afficher mon bouton supprimer centré sur une autre ligne quand toutes les images sont affichées

Merci d'avance
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h25   #2
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
après avoir coché le bouton radio et posté ou koi?
je ne comprend pas
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h25   #3
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
tu récupères tes images comment ?
En lisant un dossier?
ou tu connais déjà le nombre exact et tu les mets en dur dans le code?
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h30   #4
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Je récupére mes images dans une base de données ou j'ai stockée le chemin ainsi que le contenu du alt donc je peut si il y a besoin récupérer le nombre d'images...
Je ne mets pas les liens en dur dans le code puisque je les récupére dans la base de données

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$query = "SELECT id,path,alt FROM ". TABLE_VIGNETTE;
$result = tep_db_query($query);
 
echo "<table>";
 
while($data = mysql_fetch_assoc($result)){
	echo "<tr><td>";
	echo "<img src = '".HTTP_SERVER.DIR_WS_CATALOG.DIR_WS_IMAGES.DIR_WS_VIGNETTE.$data['path']."' alt = '".$data['alt']."'>";
	echo "</td><td>";
	echo tep_draw_input_field('fichier',$data['id'],'','','radio');//crée le bouton radio
	echo "</td></tr>";
}
echo "</table>";
Je vais essayer de réexpliquer pour ceux qui n'ont pas compris...

Je veux afficher des images associées chacune a un bouton radio, me permettant de la sélectionner et ainsi de la supprimer, je veux que le bouton radio apparaissent juste en dessous de l'image et qu'il y ai n images par lignes...
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h30   #5
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Citation:
Envoyé par ciesco
Ne quittez pas je vous passe le service demande, il vous sera facture 80 centimes la minute...
C'est vrai que ca fait vachement avancer le problème ça... je ne pense pas demander un bout de code toute les 5 minutes et quand je le demande c'est que je m'en sors vraiment pas...
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h35   #6
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
ok c'est compris .ton probleme serait donc un problème de mise en forme .si tel est le cas utilise un tableau
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h36   #7
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
oui c'est just un problème de mise en forme, j'ai essayé avec un tableau mais je ne vois pas comment faire pour obtenir l'affichage que je vous ai décrit..
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h50   #8
Membre du Club
 
Inscription : mars 2005
Messages : 96
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 96
Points : 45
Points : 45
une solution un peu "bidouille":


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
42
43
44
 
 
echo "<form action='POST' name='form_suppr_img'>";
 
$query = mysql_query($ta_requete);
 
//numéro de l'image dans la ligne
$num_img = 1;
 
echo "<TABLE>";
echo "     <TR>";
 
while($ligne = mysql_fetch_object($query)
//On lit le résultat de la requête ligne à ligne
//a chaque passage dans la boucle, on va afficher le couple image + bouton d'option
{
         echo "<TD>";
         echo "  <TABLE>";
         //affichage de l'image
         echo "      <TR><TD><img src='".$ligne['nom_du_champ_image']."'></img></TD></TR>";
         //affichage du bouton d'option:
         echo "      <TR><TD><input type='radio' name='nom_image'></TD></TR>";
         echo "   </TABLE>";
         echo "</TD>";
 
 
 
         if($num_img==6)
         //si on est à la sixième image de la ligne, on change de ligne
         {
               echo "</TR><TR>";
               $num_img=1;
         }
         else
         {
               $num_img++;
         }
}
 
echo "</TR></TABLE>";
 
echo "<CENTER><input type='submit' value='supprimer l'image'></CENTER>";
 
echo "</FORM>";

Je pense que ca devrait marcher...

[edit]
A la place de recréer une table dans chaque case, un simple
Code :
1
2
 
<CENTER><img src=...><BR><input type='radio' ...></CENTER>
devrait suffire
The Wretched est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h54   #9
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
il n'y a pas moyen de travailler avec un modulo pour alléger un peu ce code ?
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 10h57   #10
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
J'avais commis une fonction pour afficher en tableau html des données issues d'une requête.

Il faut fournir à la fonction un array des données et le nombre de colonnes que l'on souhaite.
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h05   #11
Membre habitué
 
Avatar de ciesco
 
Inscription : février 2004
Messages : 110
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 110
Points : 119
Points : 119
Je disais ca car ca faisiat un peu je veux ca je veux ca et je veux ca.
MAis puisque visiblement ca n'est pas ca et que tu as expliqe plus clairement ce que tu veux. Excuse moi alors.
Donc si tu le veux avec le modulo regarde ce post ou j'avais donen la solution .
http://www.developpez.net/forums/vie...098&highlight=
ciesco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h11   #12
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
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
echo"<table border='1'>"; 
$cpt=0; 
         while($res=mysql_fetch_array($send)) 
         { 
             $output = (!($cpt%3))?"<tr><td>":"<td>"; 
               echo $output; 
               $lienphoto=$chemin."".$res[3];    
               $h_vign = "120"; 
               $taille = getimagesize($lienphoto); 
               $reduc  = floor(($h_vign*100)/($taille[1])); 
               $l_vign = floor(($taille[0]*$reduc)/100); 
 
               echo"<img src='$lienphoto' width='$l_vign' height='$h_vign'>"; 
 $output = (($cpt%3)==2)?"</td></tr>":"</td>"; 
 
echo $output; 
 
 
 
$cpt++; 
 
            //echo'</tr>'; 
 
         } 
      echo'</table>';
Je me permets de copier ton code ici ciesco afin que cela soit plus facile a suivre...

mais je ne comprends pas comment il fonction, tu ne fait jamais un if sur le modulo ?
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h12   #13
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Citation:
Envoyé par macbook
J'avais commis une fonction pour afficher en tableau html des données issues d'une requête.

Il faut fournir à la fonction un array des données et le nombre de colonnes que l'on souhaite.

La fonction termine le tableau pour qu'il soit html valide :

Citation:
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
42
43
44
45
<?php
****function*affiche_tab*(*$tab*,*$nb*)
****{****
****$nb_var*=*count*(*$tab*)*;*//*nombre*d'occurence*à*afficher
****$nb_line*=*ceil*(*count*(*$tab*)*/*$nb*)*;*//*nombre*de*ligne*que*comportera*le*tableau*HTML
****$nb_cell*=**$nb_line***$nb*-*$nb_var*;*//*nombre*de*cellule*"vide"*à*la*fin*du*tableau*HTML
****$width*=*ceil*(*100*/*$nb*)*;*//*largeur*des*cellules*en*%
 
****$table_html*=*'<table*border="0"*width="600"*cellspacing="0"*cellpadding="0"*align="center">'*;*//*A*personnaliser
 
****$i*=*0*;
********foreach*(*$tab*as*$value*)
********{
************if*(*$i*==*0*)*//*Début*d'une*ligne*de*tableau*HTML
************{
************$table_html*.=*'<tr>'*;
************}
 
********$table_html*.=*'<td*width="'*.*$width*.*'%">'*.*$value*.*'</td>'*;
********$i*++*;
 
************if*(*$i*==*$nb*)*//*Fin*d'une*ligne*de*tableau*HTML
************{
************$table_html*.=*'</tr>'*;
************$i*=*0*;
************}
********}
 
****$end_table_html*=*''*;
********if*(*$nb_cell*!=*0*)//*Ajout*de*cellule*"vide"*pour*finir*le*tableau*HTML
********{
********$i*=*0*;
************while*(*$i*<*$nb_cell*)
************{
************$end_table_html*.=*'<td>&nbsp;</td>'*;
************$i*++*;
************}
********$end_table_html*.=*'</tr>'*;
********}
 
****$table_html*.=*$end_table_html*.*'</table>'*;
 
****return*$table_html*;
****}
?>
Phpsyntaxcolor powered by decabodi
Le tableau que je dois fournir en entrée comprends quoi alors ? mes images associées à leur bouton radio ? je renvoye donc un tableau de tableau ?
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h15   #14
Membre du Club
 
Inscription : mars 2005
Messages : 96
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 96
Points : 45
Points : 45
Citation:
mais je ne comprends pas comment il fonction, tu ne fait jamais un if sur le modulo
Le
Citation:
(!($cpt%3))?
fonctionne exactement comme un
En fait, la syntaxe abrégée du if (si je me rappelle bien) est

(condition)? resultat_si_vrai : resultat_si_faux ;
The Wretched est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h16   #15
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Citation:
Envoyé par The Wretched
Citation:
mais je ne comprends pas comment il fonction, tu ne fait jamais un if sur le modulo
Le
Citation:
(!($cpt%3))?
fonctionne exactement comme un
En fait, la syntaxe abrégée du if (si je me rappelle bien) est

(condition)? resultat_si_vrai , resultat_si_faux ;
ok je ne connaissais pas cette syntaxe
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h19   #16
Membre du Club
 
Inscription : mars 2005
Messages : 96
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 96
Points : 45
Points : 45
Je me suis trompé, c'est un " : " à la place d'une " , " entre les deux résultats
The Wretched est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h25   #17
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$cpt=0; 
							while($data=mysql_fetch_array($result)) 
							{ 
								$donnees = true;
								$output = (!($cpt%6))?"<tr><td>":"<td>"; 
 
								echo "  <table>"; 
						        //affichage de l'image 
						        echo "<img src = '".HTTP_SERVER.DIR_WS_CATALOG.DIR_WS_IMAGES.DIR_WS_VIGNETTE.$data['path']."' alt = '".$data['alt']."'>"; 
						        //affichage du bouton d'option: 
						        echo tep_draw_input_field('fichier',$data['id'],'','','radio');
						        echo "   </table>"; 
 
 
								$output = (($cpt%6)==2)?"</td></tr>":"</td>"; 
								$cpt++;
							}
J'ai fait ca mets ca m'affiche tout en colonne avec le bouton radio a droite de l'image

image1 o
image2 o
etc...

moi je voudrais
Code :
1
2
3
4
5
 
image1     image2     image3    image4    image5    image6
   o         o         o          o         o         o
image7     image8     image9    image10    image11   image12
   o         o         o          o         o         o
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h32   #18
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$cpt=0; 
							while($data=mysql_fetch_array($result)) 
							{ 
								$donnees = true;
								$output = (!($cpt%6))?"<tr><td>":"<td>"; 
 
								echo "  <table><tr><td>"; 
						        //affichage de l'image 
						        echo "<img src = '".HTTP_SERVER.DIR_WS_CATALOG.DIR_WS_IMAGES.DIR_WS_VIGNETTE.$data['path']."' alt = '".$data['alt']."'>"; 
						        echo "</td></tr><tr><td align = 'center'>";
								//affichage du bouton d'option: 
						        echo tep_draw_input_field('fichier',$data['id'],'','','radio');
						        echo "  </td></tr> </table>"; 
 
 
								$output = (($cpt%6)==2)?"</td></tr>":"</td>"; 
								$cpt++;
							}
L'affichage du bloc image+bouton radio est bon mais je n'ai qu'un bloc par ligne...
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h35   #19
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
	$cpt=0; 
							while($data=mysql_fetch_array($result)) 
							{ 
								$donnees = true;
								$output = (!($cpt%6))?"<tr><td>":"<td>"; 
								echo $output;
								echo "  <table><tr><td>"; 
						        //affichage de l'image 
						        echo "<img src = '".HTTP_SERVER.DIR_WS_CATALOG.DIR_WS_IMAGES.DIR_WS_VIGNETTE.$data['path']."' alt = '".$data['alt']."'>"; 
						        echo "</td></tr><tr><td align = 'center'>";
								//affichage du bouton d'option: 
						        echo tep_draw_input_field('fichier',$data['id'],'','','radio');
						        echo "  </td></tr> </table>"; 
 
 
								$output = (($cpt%6)==2)?"</td></tr>":"</td>"; 
								echo $output;
								$cpt++;
							}
autant pour moi j'avais surpprimé les echo $output; par erreur...

par contre je n'ai que 3 images par ligne, a quoi cela est-il du ?

je voudrais en afficher 8 par ligne...
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 11h37   #20
Membre du Club
 
Inscription : mars 2005
Messages : 96
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 96
Points : 45
Points : 45
As-tu créé une table avant? Si tu ne l'as pas fait, il faut le faire!

Tes <table> et </table> ne servent à rien à l'intérieur de la boucle...

Et enlève ton " ==2 " dans l'instruction
Code :
1
2
 
$output = (($cpt%6)==2)?"</td></tr>":"</td>";
De plus, si tu mets
Code :
$output = (!($cpt%6))?"<tr><td>":"<td>";
au début de la boucle, lorsque tu entreras pour la sixième fois dans celle-ci, ca va recréer une ligne (via le <TR>) alors que tu n'as pas encore fermé l'ancienne (car tu le fais à la fin de la boucle).

Je te conseille de supprimer cet affichage en début de boucle et de mettre à la place de l'afichage de fin:

Code :
1
2
 
output = (($cpt%6)==0)?"</td></tr><tr>":"</td>";
The Wretched 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 06h11.


 
 
 
 
Partenaires

Hébergement Web