J'apprends cakephp, et je faisais juste une simple application de liste Todo à partir d'un livre. L'application prend essentiellement une tâche depuis un champ de saisie, puis vous cliquez sur "Ajouter une tâche" et la tâche doit être ajoutée à la base de données, puis l'utilisateur est redirigé vers la page Affichage des tâches où toutes les tâches sont visibles. . Dans la vue des tâches d'ajout (add.ctp), il y a un bouton "Ajouter une tâche". Le bouton apparaît dans le navigateur, mais il ne fait rien quand on clique dessus, il ne semble même pas être lié à quelque chose ?? Voici mon code:Soumettre le bouton de formulaire ne fonctionne pas pour l'application de liste de tâches simple (je suis nouveau à CakePHP)?
//Model: task.php
<?php
class Task extends AppModel
{
var $name = 'Task';
}
?>
//Controller: tasks_controller.php
<?php
class TasksController extends AppController
{
var $name = 'Tasks';
var $helpers = array('Html', 'Form');
function index()
{
$this->set('tasks', $this->Task->find('all'));
}
function add()
{
if (!empty($this->data)) {
$this->Task->create();
if ($this->Task->save($this->data)) {
$this->Session->setFlash('The Task has been saved');
$this->redirect(array('action'=>'index'), null, true);
} else {
$this->Session->setFlash('Task not saved. Try again.');
}
}
}
}
?>
//View: views/tasks/index.ctp
<h2>Tasks</h2>
<?php if(empty($tasks)): ?>
<p>There are no tasks in this list</p>
<?php else: ?>
<table>
<tr>
<th>Title</th>
<th>Status</th>
<th>Created</th>
<th>Modified</th>
<th>Actions</th>
<tr>
<?php foreach($task as $task): ?>
<tr>
<td>
<?php echo $task['Task']['title'] ?>
</td>
<td>
<?php
if($task['Task']['done']) echo "Done";
else echo "Pending"
?>
</td>
<td>
<?php echo $task['Task']['created'] ?>
</td>
<td>
<?php echo $task['Task']['modified'] ?>
</td>
<td>
</td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
//View: views/tasks/add.ctp
<?php $form->create('Task'); ?>
<fieldset>
<legend>Add New Task</legend>
<?php
echo $form->input('title');
echo $form->input('done');
?>
</fieldset>
<?php echo $form->end('Add Task'); ?>
//My Database setup
CREATE TABLE `tasks` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`done` tinyint(1) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
espoir des thats assez clair. Ceci est une application très simple, donc je suis sûr que la solution est facile. Dans la vue des tâches d'ajout (add.ctp), il y a un bouton "Ajouter une tâche". Le bouton apparaît dans le navigateur, mais il ne fait rien quand on clique dessus, il ne semble même pas être lié à quelque chose ??
Merci d'avance, j'apprécie toute aide.