Essaye ceci dans ton login.ctp
<?php echo $this->Html->script('login', array('inline' => false)); ?>
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'); ?>
Essaye ceci dans ton login.ctp
<?php echo $this->Html->script('login', array('inline' => false)); ?>
Salut, Pourquoi mets tu des class à tes éléments par javascript et non directement avec ton css.
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