Bonjour,

Contexte :

J'ai créer une vue qui utilise des onglets dynamiquement.
Les sous onglets on un contenu appelant une autre vue avec [code]<?php echo $this->element('../path/index') ?>[/code]

Problème :

Pour les vues générant des tableaux à partir d'une fonction listJSON() (présente dans leur controlleurs respectifs) :

  • quand j'intègre la première vue dans un onglet, le tableau s'affiche correctement
  • quand j'intègre une deuxième vue dans un autre onglet, cette vue affiche le tableau (css,cadre...) mais pas son contenu qui est géré par listJSON()
  • j'obtiens dans la console du navigateur une erreur sur le deuxième POST (JSON) généré et je m'aperçois qu'il va le chercher au même endroit que pour le premier tableau !

Voici le code de la fonction listJSON :

[code]public function listJSON() {
if ( $this->request->is( 'ajax' ) ) {

        $limit = $this->request->data('rows');
        $page  = $this->request->data('page');
        $sidx  = $this->request->data('sidx');
        $sord  = $this->request->data('sord');

        if( !$sidx ) $sidx = 1;
        $count = $this->ActiHebdo->find('count');

        if( $count > 0 ) {
            $total_pages = ceil($count / $limit);
        } else {
            $total_pages = 0;
        }

        if( $page > $total_pages ) $page = $total_pages;

        $sort_range = $sidx . " " . $sord;

        $sqlFields = $this->ActiHebdo->sqlFields;

        $results = $this->ActiHebdo->find('all', array(
            'fields' => $sqlFields,
            // 'contains' => array(),
            'order' => $sort_range,
            'limit' => $limit,
            'page'  => $page
        ));

        $i=0;
        $response = new stdClass();
        $response->page = $page;
        $response->total = $total_pages;
        $response->records = $count;

        $fields = $this->ActiHebdo->fields;

        foreach($results as $result)
        {
            $response->rows[$i]['id']   = $result['ActiHebdo']['id'];
            foreach($fields as $fullfield){
                list($table, $field) = explode('.', $fullfield);
                $response->rows[$i]['cell'][] = $result[$table][$field];
            }
            $i++;
        }

        // On encode au format JSON et on affiche directement ce résultat (pour le récupérer dans la vue)
        echo json_encode($response);

        // Pour dire à CakePHP de ne pas chercher la vue correspondante.
        $this->autoRender = false;
    }
}[/code]

Et l'erreur affichée dans la console de mon navigateur :

[url=http://www.hostingpics.net/viewer.php?id=599877erreurajaxG.png][img]http://img4.hostingpics.net/pics/599877erreurajaxG.png[/img][/url]

Aucune réponse