Alors voilà j'ai une vue avec un formulaire mais j'ai un problème car quand je poste le formulaire à vide le debug fonctionne mais si je remplis le textarea avec beaucoup de texte ou que je clique sur le bouton ajouter une étape et que je remplis les remplis un peu et que j'envoie mon formulaire la page tourne tourne puis chrome me met que la requête à échoué.
Voici mes pages:
add.ctp
<?php echo $this->Form->create('Recette', array('class' => 'form-horizontal'));?>
<div class="row">
<div class="span12">
<ul class="nav nav-pills" id="navTab">
<li class="active"><a href="#tab1">Général</a></li>
<li><a href="#tab2">Photos</a></li>
<li><a href="#tab3">Ingrédient</a></li>
<li><a href="#tab4">Etape</a></li>
<li><a href="#tab5">Astuce</a></li>
<li><a href="#tab6">Vin</a></li>
<li><a href="#tab7">Options</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
<?php
echo $this->TB->input('name', array(
'input' => $this->Form->input('name', array('label' => false, 'class' => 'span8')),
'label' => 'Titre de la recette'
));
?>
<?php
echo $this->TB->input('recette_category_id', array(
'input' => $this->Form->input('recette_category_id', array('label' => false)),
'label' => 'Catégorie'
));
?>
<?php
echo $this->TB->input('online', array(
'input' => $this->Form->input('online', array('label' => false, 'options' => array(10 => 'Hors ligne', 11 => 'En ligne', 12 => 'Brouillon'), 'empty' => 'Choisissez')),
'label' => 'Statut'
));
?>
</div>
<div class="tab-pane" id="tab2">
</div>
<div class="tab-pane" id="tab3">
<?php
echo $this->TB->input_addon(
'Ingredient',
'<button class="btn ingred" type="button">Ajouter</button>',
$this->Form->input('ingred', array('label' => false, 'class' => 'span5'))
);
?>
<div class="ingredList">
<ul class="unstyled"></ul>
<?php echo $this->Form->input('ingredient', array('type' => 'hidden')); ?>
</div>
</div>
<div class="tab-pane" id="tab4">
<?php
echo $this->TB->input_addon(
'Etape',
' ',
$this->Form->input('Recette.etape.0', array('label' => false, 'type' => 'textarea', 'class' => 'span6 etapeInput'))
);
?>
<div class="etapeList"></div>
<?php echo $this->TB->button('Ajouter une étape', array('type' => 'button', 'style' => 'btn', 'class' => 'etape')); ?>
</div>
<div class="tab-pane" id="tab5">
<?php
echo $this->TB->input('astuce', array(
'input' => $this->Form->input('astuce', array('label' => false, 'type' => 'textarea', 'class' => 'span8')),
'label' => 'Astuce'
));
?>
</div>
<div class="tab-pane" id="tab6">
<?php
echo $this->TB->input('vin', array(
'input' => $this->Form->input('vin', array('label' => false, 'type' => 'textarea', 'class' => 'span8')),
'label' => 'Vin'
));
?>
</div>
<div class="tab-pane" id="tab7">
<?php
echo $this->TB->input('quantity', array(
'input' => $this->Form->input('quantity', array('label' => false, 'type' => 'number', 'class' => 'span2', 'value' => '4')),
'label' => 'Pour combien de personne?'
));
?>
<?php
echo $this->TB->input('prepa', array(
'input' => $this->Form->input('prepa', array('label' => false, 'class' => 'span2', 'value' => '0')),
'label' => 'Temps de préparation en min'
));
?>
<?php
echo $this->TB->input('cuisson', array(
'input' => $this->Form->input('cuisson', array('label' => false, 'class' => 'span2', 'value' => '0')),
'label' => 'Temps de cuisson en min'
));
?>
<?php
echo $this->TB->input('count', array(
'input' => $this->Form->input('count', array('label' => false, 'options' => array(0 => 'Economique', 1 => 'Pas cher', 2 => 'Gros budget'), 'empty' => 'Choisissez')),
'label' => 'Coût de la recette'
));
?>
<?php
echo $this->TB->input('dificulty', array(
'input' => $this->Form->input('dificulty', array('label' => false, 'options' => array(0 => 'Débutant', 1 => 'Intermédiaire', 2 => 'Confirmé'), 'empty' => 'Choisissez')),
'label' => 'Difficulté'
));
?>
</div>
</div>
</div>
</div>
<?php
echo $this->Form->input('users_id', array('type' => 'hidden', 'value' => $user));
?>
<div class="form-actions">
<?php echo $this->TB->button('Envoyer', array('style' => '')); ?>
<?php echo $this->TB->button('Effacer', array('style' => 'danger', 'type' => 'reset')); ?>
</div>
<?php echo $this->Form->end(); ?>
<?php $this->start('script', array('inline' => false)); ?>
<script type="text/javascript">
$(document).ready(function() {
$('button.ingred').on('click', function(e) {
e.preventDefault();
var $this = $(this).parent();
var $ingred = $this.find('.input input').val();
var $inputIngred =$('input#RecetteIngredient').val();
$('.ingredList ul').append('<li><span class="label label-info">'+$ingred+'</span> <span class="label label-important" style="cursor: pointer;">Supprimer</span></li>');
$ingred = $inputIngred+'|'+$ingred;
$('input#RecetteIngredient').val($ingred);
$this.find('.input input').val('');
$this.find('.input input').focus();
return false;
});
$('body').on('click', '.ingredList ul li span.label-important', function(e) {
e.preventDefault();
var $this = $(this);
var text = $this.parent().find('.label-info').text();
console.log(text);
var input = $('input#RecetteIngredient').val();
console.log(input);
var newVal = input.replace(text+'|', '');
console.log(newVal);
$('input#RecetteIngredient').val(newVal);
$this.parent('li').fadeOut();
});
$('button.etape').on('click', function(e) {
e.preventDefault();
var i = $('textarea.etapeInput').length;
var textarea = '<?php echo $this->TB->input_addon("Etape", "<button class=\"btn btn-small btn-danger btn-etape\" type=\"button\">Supprimer cette étape</button>", $this->Form->input("Recette.etape.' + i + '", array("label" => false, "type" => "textarea", "class" => "span6 etapeInput"))); ?>'
$('.etapeList').append(textarea);
return false;
});
$('body').on('click', 'button.btn-etape', function(e) {
e.preventDefault();
$(this).parent().fadeOut(400, function() {
$(this).remove();
});
return false;
});
$('#navTab a').on('click', function(e) {
e.preventDefault();
$(this).tab('show');
})
});
</script>
<?php $this->end(); ?>
action add de mon controller:
public function add() {
if($this->request->is('post')) {
debug($this->request->data);
die();
$this->Recette->create();
if($this->Recette->save($this->request->data)) {
$this->Session->setFlash('La recette à bien été ajouté.', 'default', array(), 'success');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Un problème est survenu, veuillez réessayer plus tard.', 'default', array(), 'error');
}
}
$recetteMedias = '';//$this->Recette->RecetteMedia->find('list');
$recetteCategories = $this->Recette->RecetteCategory->findSelect();
$user = $this->Auth->user('id');
$this->set(compact('recetteMedias', 'recetteCategories', 'user'));
}
Je suis sous MAMP PRO et CakePHP 2.3.1.Donc à votre avis ca peut venir de quoi?
Merci d'avance....