2011-07-10 5 views
1

code PHP (functions.php)modèle html instruction if

$main = $db_sql->query_array("SELECT catid,titel,subcat,startorder FROM $cat_table WHERE catid='$subcat'"); 
$tpl->register('category_title',stripslashes($main['titel'])); 
$tpl->register('category_id',$main['catid']); 

Je veux ajouter une instruction if où si {category_id} n'est pas 0 puis faites le code suivant

<img src="{GRAFURL}/{category_id}.jpg" alt="{category_title}" width="50" height="50" border="0" align="middle" />&nbsp;{category_title} 

ce qui serait la syntaxe correcte?

besoin de plus de code encore pour le fichier html?

+0

HTML comme un langage de balisage n'a pas de concept de logique d'if-else. Utilisez-vous un langage de template? – BoltClock

+0

Utilisez-vous une sorte de langage de template/côté serveur pour analyser cela? Pour le moment, ce n'est pas un code HTML valide ... – Wylie

+0

Rechercher le code JavaScript. –

Répondre

4

HTML n'a pas de caractéristiques dynamiques comme les instructions if. Pensez à HTML comme un langage pour définir une mise en page - inchangeable en utilisant le HTML lui-même.

Cela devrait faire l'affaire:

<?php 

    if (false === is_empty($category_id)) { 

    echo "<img src='{$GRAFURL}/{$category_id}.jpg' alt='{$category_title}' 
      width='50' height='50' 
      border='0' align='middle' />&nbsp;{$category_title} "; 

    } 

?> 

Si vous avez besoin d'ajouter des fonctionnalités dynamiques côté client à vos pages HTML, un coup d'oeil à jQuery ou jQuery UI.

+0

Pouvez-vous mettre à jour votre réponse à refléter les changements dans la question initiale? c'est-à-dire oui, il utilise PHP. Cela semble fondamentalement bien, vous devez envelopper le HTML dans une instruction PHP if. – Wylie

+0

@Wylie: Bien sûr, pas de problème. – SteAp

2

HTML n'a pas cette capacité. Vous devez générer votre code HTML en utilisant un langage de programmation. La syntaxe dépend alors de la langue que vous utilisiez.

par exemple. dans :

[% IF category_id %] 
<img src="[% GRAFURL %]/[% category_id %].jpg" 
    alt="{category_title}" width="50" 
    height="50" border="0" align="middle" 
    />&nbsp;[% category_title %] 
[% END %] 
0

Utilisez javascript pour générer le côté client, PHP pour le côté serveur. Javascript peut changer les choses sur la page et fournir un contenu dynamique après la page est envoyée au client; PHP peut déterminer le contenu avant en l'envoyant à l'utilisateur (alors qu'il peut l'éditer après les mots, il est beaucoup plus compliqué).

Par exemple, si vous vouliez ajouter à une balise avec id « dynamique », vous pouvez utiliser ceci:

<html> 
<head> 
<script type="text/javascript"> 
window.onload = function() { 
var img_tag = document.createElement('img'); 
img_tag.src = "{GRAFURL}/{category_id}.jpg"; 
img_tag.alt = "{category_title}"; 
img_tag.width = 50; 
img_tag.height = 50; 
img_tag.border = 0; 
img_tag.align = "middle"; 
document.getElementById("dynamic").appendChild(img_tag); 
}; 
</script> 
</head> 
<body> 
<div id="dynamic"> 
</div> 
<body> 
</html> 

cependant, je recommande vivement d'apprendre jQuery, où vous pouvez faire des choses plus facile et plus rapide . Aussi, c'est à vous de remplacer les valeurs entre accolades par les valeurs correctes (soit par PHP ou javascript), je ne pouvais pas dire ce que vous faisiez.