8722 sujets

Développement web côté serveur, CMS

Bonjour,
Je souhaite mettre 3 conditions dans mon codes, mais je ne sais pas du tout comment m'y prendre.

Je souhaite faire :
- si $lien n'est pas vide, afficher le résultat
- si $url n'est pas vide, afficher le résultat
- si $link n'est pas vide, afficher le résultat
Donc si les champs sont vides, les résultats ne sont pas affichés.

Merci pour votre aide

// Construction du tableau
         $tableau = '<table width="100%" style="margin:20px 0 20px 0; border:1px dashed #d1d1d2;" border="0" cellspacing="1" cellpadding="0"><thead><tr>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE; font-size:14px; padding:10px 5px"><span><strong>Marchands</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Prix & Dispo</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Frais de port</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Réduction</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Lien</strong></span></td>
					</tr>
					</thead>
					<tbody>';
		
		// Parcours des variables dynamiquement
		for($i=1;$i<=5;$i++) {
			$j = ($i == 1) ? '' : $i;
			
			$lien = str_replace('((','[[', ${'lienaff'.$j});
			$lien = str_replace('))',']]', $lien);
			
			$url = str_replace('((','[[', ${'urlaff'.$j});
			$url = str_replace('))',']]', $url);
			
			$link = str_replace('((','[[', ${'linkaff'.$j});
			$link = str_replace('))',']]', $link);
			
			if (!empty(${'logo'.$j})) { // Si le logo existe, on construit la ligne du tableau
				$tableau.= '<tr>
				<td width="15%" style="vertical-align:top; border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; padding:5px 5px"><img src="'.${'logo'.$j}.'" style="margin:auto; max-height:50px; max-width:120px;"/></td>
				<td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; vertical-align:middle">'.${'prix'.$j}.'<br/><span style="font-size:11px; font-style:italic">'.${'dispo'.$j}.'</span></td>
				<td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; vertical-align:middle">'.${'frais'.$j}.'<br/></td>
				<td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; vertical-align:middle">'.${'reduction'.$j}.'<br/></td>
				<td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px;  vertical-align:middle"><a target="_blank" href="'.rawurldecode($lien).'">Afficher code 1</a><br/><a target="_blank" href="'.rawurldecode($url).'">Afficher code 2</a></br><a target="_blank" href="'.rawurldecode($link).'">Afficher code 3</a></td>
				</tr>';
			}
		}
		
		$tableau.= '</tbody></table>';
		
		return $tableau;
C'est ca, en fait, je sais le faire sur un code php normal, mais là, c'est un tableau et intégrer une condition, au sein du tableau, j'y arrive pas, car je peux pas utiliser <?php if etc... ?> dans le tableau.
dreadstock a écrit :
C'est ca, en fait, je sais le faire sur un code php normal, mais là, c'est un tableau et intégrer une condition, au sein du tableau, j'y arrive pas, car je peux pas utiliser &lt;?php if etc... ?&gt; dans le tableau.


Abon ? Et pour quelle raison tu ne pourrais pas ?

EDIT : retire nous ces balises style et utilise CSS pour ça, ton tableau sera déjà 1x plus clair.

Ensuite, si tu ne souhaites pas afficher une ligne ou une cellule, qu'est ce qui t'empeche de la créer mais qu'elle soit vide ?


if(!empty($var))
  echo "<td>Pas vide</td>";
else
  echo "<td></td>;

Modifié par Apoooo (12 Mar 2013 - 13:50)
Apoooo a écrit :


Abon ? Et pour quelle raison tu ne pourrais pas ?

EDIT : retire nous ces balises style et utilise CSS pour ça, ton tableau sera déjà 1x plus clair.

Ensuite, si tu ne souhaites pas afficher une ligne ou une cellule, qu'est ce qui t'empeche de la créer mais qu'elle soit vide ?

Jai fait ca, et cela à l'air de fonctionner.

 // Construction du tableau
         $tableau = '<table width="100%" style="margin:20px 0 20px 0; border:1px dashed #d1d1d2;" border="0" cellspacing="1" cellpadding="0"><thead><tr>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE; font-size:14px; padding:10px 5px"><span><strong>Marchands</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Prix & Dispo</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Frais de port</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Réduction</strong></span></td>
					<td style="border-collapse:collapse; text-align:center;border:1px solid #fff; background:#ECECEE;font-size:14px; padding:10px 5px"><span><strong>Lien</strong></span></td>
					</tr>
					</thead>
					<tbody>';
		
		// Parcours des variables dynamiquement
		for($i=1;$i<=5;$i++) {
			$j = ($i == 1) ? '' : $i;
			
			$lien = str_replace('((','[[', ${'lienaff'.$j});
			$lien = str_replace('))',']]', $lien);
			
			$url = str_replace('((','[[', ${'urlaff'.$j});
			$url = str_replace('))',']]', $url);
			
			$link = str_replace('((','[[', ${'linkaff'.$j});
			$link = str_replace('))',']]', $link);
			
			if (!empty(${'logo'.$j})) { // Si le logo existe, on construit la ligne du tableau
				$tableau.= '<tr>
				<td width="15%" style="vertical-align:top; border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; padding:5px 5px"><img src="'.${'logo'.$j}.'" style="margin:auto; max-height:50px; max-width:120px;"/></td>
				<td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; vertical-align:middle">'.${'prix'.$j}.'<br/><span style="font-size:11px; font-style:italic">'.${'dispo'.$j}.'</span></td>
				<td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; vertical-align:middle">'.${'frais'.$j}.'<br/></td>
				<td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px; vertical-align:middle">'.${'reduction'.$j}.'<br/></td><td width="21%" style="border-collapse:collapse; border:1px solid #ECECEE;
				text-align:center; background:#fff; font-size:14px;  vertical-align:middle">';
			}
							
			if(!empty($lien)) {
			$tableau.= '<a target="_blank" href="'.rawurldecode($lien).'">Afficher code 1</a>';
			}
			
			if(!empty($url)) {
			$tableau.= '<br/><a target="_blank" href="'.rawurldecode($url).'">Afficher code 2</a>';
			}
			
			if(!empty($link)) {
			$tableau.= '</br><a target="_blank" href="'.rawurldecode($link).'">Afficher code 3</a>';
			}
			
			
			$tableau.='</td></tr>';
			
		}
		
		$tableau.= '</tbody></table>';
		
		return $tableau;

Modifié par dreadstock (12 Mar 2013 - 14:52)