J'ai utilisé des Smarty Templates avec Codeigniter. Tout fonctionne bien avec quelques problèmes, mais ceux-ci sont très différents ..Les Smarty Templates ne fonctionnent pas correctement avec Internet Explorer
Le point est le site fonctionne bien si elle est ouverte dans Firefox et Google Chrome.
Mais le problème est que si j'ouvre le site dans Internet Explorer, la plupart des choses du site Web ne fonctionnent pas.
Comme les menus dans mon site Web lorsqu'il est ouvert dans firefox génère cette sortie.
<ul class="collapse" id="menu">
<li class="nav-header">Menu</li>
<li class="nav-divider"></li>
<li>
<a href="http://localhost/projects/HouseRentSystem/admin/dashboard/System">
<i class="fa fa-dashboard"></i> Dashboard</a>
</li>
<li>
<a href="javascript:;">
<i class="fa fa-dashboard"></i>
<span class="link-title">Residentials</span>
<span class="fa arrow"></span>
</a>
<ul class="collapse">
<li>
<a href="http://localhost/projects/HouseRentSystem/admin/residentials/Houses">
<i class="fa fa-angle-right"></i> Houses
</a>
</li>
<li>
<a href="http://localhost/projects/HouseRentSystem/admin/residentials/Flats">
<i class="fa fa-angle-right"></i> Flats
</a>
</li>
</ul>
</li>
<li class="active">
<a href="javascript:;">
<i class="fa fa-dashboard"></i>
<span class="link-title">Configuration</span>
<span class="fa arrow"></span>
</a>
<ul class="collapse in">
<li class="active">
<a href="http://localhost/projects/HouseRentSystem/admin/configurations/SitePreferences">
<i class="fa fa-angle-right"></i> Site Settings
</a>
</li>
<li>
<a href="http://localhost/projects/HouseRentSystem/admin/configurations/ManageTabs">
<i class="fa fa-angle-right"></i> Manage Tabs
</a>
</li>
<li>
<a href="http://localhost/projects/HouseRentSystem/admin/configurations/ManageForms">
<i class="fa fa-angle-right"></i> Manage Forms
</a>
</li>
</ul>
</li>
</ul>
mais quand j'ouvre dans IE. il ne génère pas le code que j'ai codé dans smarty et je reçois cette sortie HTML.
<ul class="collapse" id="menu">
<li class="nav-header">Menu</li>
<li class="nav-divider"></li>
</ul>
quoi que ce soit codé à l'intérieur comme foreach
, son comme jamais exécuté. Comment est-ce possible. Je pensais que la programmation est un langage côté serveur. comment un navigateur affecte-t-il le langage de programmation?
Voici le code si quelqu'un peut signaler où je me suis trompé qu'il devrait fonctionner dans firefox et chrome mais pas l'IE.
{{$var = ksort($Menu)}}
<ul id="menu" class="collapse">
<li class="nav-header">Menu</li>
<li class="nav-divider"></li>
{{foreach $Menu as $MainMenu}}
{{$FormCIPath = explode("/", $MainMenu['FormCIPath'])}}
<li {{checkActiveClassMainMenu($FormCIPath[1])}}>
{{if isset($MainMenu['SubMenu'])}}
<a href="javascript:;">
<i class="fa fa-dashboard"></i>
<span class="link-title">{{$MainMenu['Name']}}</span>
<span class="fa arrow"></span>
</a>
{{else}}
<a href="{{url}}{{$MainMenu['FormCIPath']}}">
<i class="fa fa-dashboard"></i> {{$MainMenu['Name']}}</a>
{{/if}}
{{if isset($MainMenu['SubMenu'])}}
<ul>
{{$var = ksort($MainMenu['SubMenu'])}}
{{foreach $MainMenu['SubMenu'] as $SubMenu}}
{{$FormCIPath = explode("/", $SubMenu['SubFormCIPath'])}}
<li {{checkActiveClassSubMenu($FormCIPath[2])}}>
<a href="{{url}}{{$SubMenu['SubFormCIPath']}}">
<i class="fa fa-angle-right"></i> {{$SubMenu['SubName']}}
</a>
</li>
{{/foreach}}
</ul>
{{/if}}
</li>
{{/foreach}}
</ul><!-- /#menu -->
Mise à jour: Merci à Marcin Nabiałek réponse, je me suis dit où est le problème, mais je ne sais pas pourquoi il donne le problème? J'ai fait var_dump à l'intérieur de la boucle foreach interne, semble que IE ne veut pas aller à l'intérieur de la boucle foreach, parce que IE ne retourne rien. IE DonT même voir la boucle foreach, peu importe ce que j'écris à l'intérieur, HTML PHP, il ne sera jamais rendre les données >>
i ajouté cette ligne
<pre>Test - {{$menus|@var_dump}}</pre>
dans la boucle foreach imbriquée. les boucles foreach principales exécutent des amendes mais le foreach intérieur, semble comme IE ne veux pas le lire.
Seul Firefox et Chrome le lisent. Je n'ai pas d'autres navigateurs installés ou j'aurais vérifié sur eux aussi.
qu'est-ce que javascript :; – davidcondrey
@dcc Il n'y a pas de javascript sauf le js de bootstrap. –
"c'est-à-dire ne pas vouloir aller à l'intérieur du foreach"? IE est un navigateur. Smarty est en cours d'exécution sur le serveur. Le navigateur n'a rien à voir avec un foreach ne pas être exécuté, sauf si vous avez écrit 'if (browser == ie) {ne faites pas ceci}' –