Bonjour à tou(te)s,

A la lecture du titre vous avez déjà compris que je suis débutant en PHP et cakePHP.

J'ai cependant créé sans problème une application qui permet d'administrer et d'afficher un répertoire d'associations en fonction d'activités diverses (section). Toutefois,basiquement, la vue qui donne les détails sur l'association (`name`, `adr1`, `adr2`, `code_postal`, `ville`, `telephone`, `site_internet')) s'ouvre dans une autre page. L'application fonctionne bien mais pour rendre la navigation plus simple pour les utlisateurs je voudrais qu'elle s'ouvre dans la même page.

J'ai passé des heures à chercher quelque chose de simple avec Ajax par exemple mais je ne trouve que des formulaires ou d'autres choses trop complexes pour moi pour le moment. Cette fonction qui est basique n'a pas sembler intéresser les vrais développeurs.

J'ai bien vu qu'il fallait retoucher le contrôleur et la fonction index pour afficher de l'AJAX mais ne vois même pas où/comment insérer la requête vers AJAX (car je dois interroger la BD) par exemple dans le formulaire cake :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?= $this->Html->link(__('Détail'), ['action' => 'view', $association->id], ["class" => "badge badge-info"]) ?>
Même si c'est probablement inutile je vous mets le code du formulaire classique en bas de message.
Merci par avance.
Bien à vous.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?= $this->assign('title','Liste Associations');?>
<?= $this->element('menu') ?>
 
<div class="container">    
  <div class="page-header">
  <h2>Liste des associations</h2>
  </div>
  <table class="table table-striped table-hover">
    <thead>
      <tr>
        <th scope="col"><?= $this->Paginator->sort('id') ?></th>
        <th scope="col"><?= $this->Paginator->sort('section_id') ?></th>
        <th scope="col"><?= $this->Paginator->sort('name', ['label' => 'Nom Association']) ?></th>
        <th scope="col"><?= $this->Paginator->sort('ville') ?></th>
        <th scope="col" class="actions"><?= __('Actions') ?></th>
      </tr>
    </thead>
    <tbody>
        <?php foreach ($associations as $association): ?>
          <tr>
            <td><?= $this->Number->format($association->id) ?></td>
            <td><?= $association->has('section') ? $this->Html->link($association->section->name, ['controller' => 'Sections', 'action' => 'view', $association->section->id]) : '' ?></td>
            <td><?= h($association->name) ?></td>
            <td><?= h($association->ville) ?></td>
            <td width="16%"class="actions">
                <?= $this->Html->link(__('Détail'), ['action' => 'view', $association->id], ["class" => "badge badge-info"]) ?>
                <?= $this->Html->link(__('Modif.'), ['action' => 'edit', $association->id], ["class" => "badge badge-warning"]) ?>
                <?= $this->Form->postLink(__('Suppr'), ['action' => 'delete', $association->id], ['confirm' => __('Etes-vous sûr de vouloir supprimer l\'association # {0}?', $association->id), "class" => "badge badge-danger"]) ?>
            </td>
          </tr>
      <?php endforeach; ?>
    </tbody>
  </table>
  <div class="paginator">
    <ul class="pagination">
      <?= $this->Paginator->first('<< ' . __('Première')) ?>
      <?= $this->Paginator->prev('< ' . __('Précédente')) ?>
      <?= $this->Paginator->numbers() ?>    
      <?= $this->Paginator->next(__('Suivante') . ' >') ?>
      <?= $this->Paginator->last(__('Dernière') . ' >>') ?>
    </ul>
  </div>
</div>