Signaler

Une fonction de mise en page [Résolu]

Posez votre question JukeBoy - Dernière réponse le 17 oct. 2016 à 01:23
Bonjour a tous,

Voilà, je suis sur un projet en HTML/CSS/PHP et j'ai besoin d'une solution ou du moins une piste.
J'aimerai créer une fonction, où en argument je place 3 variables, un $titre, un $lien, et une $description. Jusqu'à la pas de soucis.

Cependant, j'aimerai que ces informations soit regroupées dans un "Block" où chacune des informations à un style différent (CSS), et que le tout soit cerclé de noir. Si il fallait donner un exemple ça serait comme un statut facebook ou un tweet, je voudrais une boîte contenant ce qu'il me faut.

Et a la fin, sur une simple page blanche (par défaut), cumuler ces boites les unes en dessous des autres, façon mémo.
A chaque appel de fonction sur ma page, cela créer une boite, avec mes infos dedans, le tout prenant un style CSS particulier, et la plaçant en dessous de la boite précédente.

J'espère avoir été clair, merci d'avance :) !
Afficher la suite 
Utile
+0
moins plus
Bonjour,

Quel est ton souci exactement ?
- représenter ces boites en HTML / CSS ?
- Ecrire une fonction PHP ?
- Ecrire LA fonction qui prend 3 paramètres en entrée ?
- Stocker les données quelque part pour pouvoir t'en reservir lors de l'affichage de ta "page blanche" ?

Merci de nous indiquer sur quoi tu bloques exactement et éventuellement le code que tu as commencé à écrire.

NB: Si ta question concerne la partie HTML/CSS je déplacerai la discussion dans le "bon" forum.

JukeBoy- 16 oct. 2016 à 21:30
Non, mon soucis est bien un soucis de PHP. Je sais faire mes styles en CSS, et le corps de la page en HTML. Je bloque sur la fonction. Je n'arrive pas a me representer, comment a partir de la même fonction, on peut générer plusieurs blocks et incrémenter la page.
Mes 3 paramètres viennent d'une base SQL ou je stock le titre, le lien, et une description, mais là n'est pas la question.
Il doit me manquer des connaissances ou des fonctions existantes pour le faire. Comment créer un "Objet" et en mettre plusieurs exemplaires sur la même page ?
(Je n'ai pas mon ordinateur avec moi, je mettrais mes notes des que possible, j'en suis encore a l'étape d'élaboration)
Répondre
jordane45 15406Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 5 décembre 2016 Dernière intervention - 16 oct. 2016 à 22:58

<?php
// La fonction
function createBlock($id,$title,$lien,$description=""){
  $html = "";
  $html .= "<div class='block' id='block_".$id."'>";
  $html .= "<div class='title'>".$title."</div>";
  $html .= "<div class='description'>".$description."</div>";
  $html .= "<div class='lien'><a href='".$lien."' rel="nofollow noopener noreferrer" target="_blank">".$lien."</a></div>";
  $html .= "</div>";
  return $html;
}

//Pour simuler le contenu de ta BDD
$arr=array();
$arr[] = array('id'=>1,'title'=>"titre 1",'lien'=>"http://www.google.fr","description"=>"ceci est le premier lien"); 
$arr[] = array('id'=>2,'title'=>"titre 2",'lien'=>"http://www.commentcamarche.net/forum/affich-34002116-une-fonction-de-mise-en-page#p34003060","description"=>"Question sur le fofo CCM");

?>

<!-- un peu de html -->
<html>
 <head>
   <title>TEST</title>
   <meta charset="utf-8">
   <style>
      .block{
		border:1px solid #0D0D00;
		background-color:#3D3D2A;
		-webkit-box-shadow: #B3B3B3 13px 13px 13px;
		-moz-box-shadow: #B3B3B3 13px 13px 13px;
		box-shadow: #B3B3B3 13px 13px 13px;
		width:300px;
		display:block;
		margin:40px
	  }
	  
     .title{
	   background-color:green;
	   
	 }
	 .description{
	   background-color:yellow;
	 }
	 .lien{
	   background-color:lightgrey;
	 }
   </style>
 </head>
 <body>
  <?php
  // Maintenant utilisation de la fonction pour afficher le contenu
  foreach($arr as $R){
    $id = $R['id'];
    $titre = $R['title'];
    $lien = $R['lien'];
    $description = $R['description'];
    echo  createBlock($id,$titre,$lien,$description);
  }
  ?>
 </body>
</html>
Répondre
JukeBoy- 16 oct. 2016 à 23:51
Merci beaucoup ! Cela ressemble en effet a ce que je veux quand je regarde le code. Ça me permet de comprendre comment répartir efficacement l'HTML, le CSS et le PHP.
Cependant, à la ligne :
$html .= "<div class='lien'><a href='".$lien."' rel="nofollow noopener noreferrer" target="_blank">".$lien."</a></div>";
J'obtiens :
Parse error: syntax error, unexpected T_STRING in W:\var\www\Projet\test.php on line 8
Je me suis contenté de copier coller le code pour tester, j'ai regardé la ligne et je ne vois pas de faute de syntaxe, où est mon erreur :/ ?
Répondre
jordane45 15406Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 5 décembre 2016 Dernière intervention - 17 oct. 2016 à 00:06
Question de guillemets et d'apostrophes...
$html .= "<div class='lien'><a href='".$lien."' rel="nofollow noopener noreferrer" target="_blank" rel=\"nofollow noopener noreferrer\" target=\"_blank\">".$lien."</a></div>";
Répondre
Ajouter un commentaire
Utile
+0
moins plus
le site bug... je n'arrive pas à te l'écrire correctement...
voici une image :

Ajouter un commentaire
Utile
+0
moins plus
C'est parfait merci ! Cela fait parfaitement ce que je veux, je vais bidouiller tout ça pour obtenir le résultat que je souhaite, merci beaucoup en tout cas ! Vu comment je galère tu risques de me recroiser d'ici peu sur la section PHP ou HTML ;)
@Arthur
jordane45 15406Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 5 décembre 2016 Dernière intervention - 17 oct. 2016 à 01:23
Si la question est résolue, pense à cliquer sur le bouton RESOLU sous le titre de ta question.
@+
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !