Je suis en train de faire le tuto en 4 cours sur la création d'un site avec cakePhp, et je me heurte souvent à des problèmes de javascript.
Je veux m'amuser avec le bootstrap et embellir mes pages. Pour cela j'ai besoin d'ajouter une classe à certains élèments créés avec les $this->Form
Si je mets directement le javascript dans la page qui m'intéresse, cela ne fonctionne pas.Par contre si j'appelle le fichier js dans le default.ctp , là c'est bon.
J'ai tenté le fameux echo scripts_for_layout mais ça ne change rien.
Je vous colle mes deux fichiers.
voilà mon login.js
$(document).ready(function() {
$("label").addClass("control-label");
$("form").addClass("form-horizontal");
});
et mon login.ctp
<div class="page-header">
<h1>Identification</h1>
</div>
<?php echo $this->Form->create('User'); ?>
<div class="control-group">
<?php echo $this->Form->input('username',array('label' =>"Login", 'placeholder' =>"Login", "id"=>"inputEmail", "div" => array('class' => 'controls'))); ?>
</div>
<div class="control-group">
<?php echo $this->Form->input('password',array('label' =>"Mot de passe", 'placeholder' =>"Mot de passe", "id"=>"inputPassword", "div" => array('class' => 'controls'))); ?>
</div>
<div class="control-group"><div class="controls">
<?php echo $this->Form->end("Se connecter"); ?>
</div>
</div>
<?php echo $this->Html->script('login'); ?>
et mon default.ctp
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title><?php echo $title_for_layout; ?></title>
<link rel="stylesheet/less" type="text/css" href="<?php echo $this->Html->url('/css/bootstrap.less'); ?> ">
<link rel="alternate" type="application/rss+xml" title="Mon site" href="<?php echo $this->Html->url(array('controller'=>'posts','action'=>'feed','ext'=>'rss')); ?>">
<?php echo $this->Html->script('less'); ?>
<?php echo $scripts_for_layout; ?>
</head>
<body>
<div class="container">
<div class="navbar">
<div class="navbar-inner">
<a class="brand" href="#"><i class="icon-home"></i></a>
<ul class="nav"><?php echo $this->element('menu'); ?></ul>
<form class="navbar-search pull-right">
<input type="text" class="search-query" placeholder="Search">
</form>
</div>
</div>
<?php echo $this->Session->flash(); ?>
<?php echo $content_for_layout ; ?>
<?php echo $this->element('sql_dump'); // affiche les requêtes SQL pour debugguer ?>
</div>
</body>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<?php echo $this->Html->script('bootstrap'); ?>
Salut, Pourquoi mets tu des class à tes éléments par javascript et non directement avec ton css.
Essaye ceci dans ton login.ctp
<?php echo $this->Html->script('login', array('inline' => false)); ?>
prbaron, ça ne fonctionne toujours pas avec inline.
Aprés c'est vrai que je n'ai pas pensé au css, je vais tester
Edit:
on ne peut pas ajouter une classe avec le CSS.
Aprés si je tappe mon javascript avec la console de développement, il fonctionne.Mais jamais quand il est dans ou relié à ma page login.ctp