Empfehlungen: Erweiterte Suche

Ajax aus Helper ausführen

Unterstützung der Daten-Formatierung in den Views (DRY)

Ajax aus Helper ausführen

Beitragvon getit » Mo 19. Jan 2009, 15:56

Wie ihr wahrscheinlich mitbekommen habt, habe ich einen Helper (http://www.cakephp-forum.com/tutorials-und-snippets/explorer-tree-t134.html) geschrieben.

Ich versuche gerade den um Ajax zu erweitern.
Ich möchte mal, das wenn man die Maus auf ein Dokument zeigt dann in einem Div-Container weitere Details zu dem Dokument angezeigt werden.
Scriptaculous kann (und will) ich nicht einsetzten, da das zusammen mit jquery (denke das ist der Grund) beim laden der Seite zu nem Javascript-Fehler führt. Macht zwar nix, aber is unschön.

Dabei habe ich aber ein Problem. :(
Habe das erstmal so probiert, das ich jedem Dokument das Ereignis 'getDetails()' mitgebe.
Code: Alles auswählen
<li onclick="javascript&#058;getDetails();">


Das funktioniert auch gut.
Die 'getDetails()' sieht bisher so aus:
Code: Alles auswählen

function getDetails() {
    $.get("/cakeTest/ajax/test.txt", function(text){alert(text);});
}
 


Der Ajax-Request funktioniert (sehe ich im Firebug) nur poppt dann das alert mit folgendem Inhalt auf: s. angehängtes Bild


Brauche ich dafür dann extra einen weiteren Controller, oder lässt sich das auch irgendwie anders lösen?
Wenn nicht, wie muss der Controller dann aussehen?
Dateianhänge
ajaxfehler.jpg
ajaxfehler.jpg (205.63 KiB) 95-mal betrachtet
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista

Re: Ajax aus Helper ausführen

Beitragvon getit » Mo 19. Jan 2009, 22:59

:D Konnte es lösen :D

documents_controller.php
Code: Alles auswählen

function getDetails() {
        $docId = $this->params['form']['docId'];
        $this->set('document', $this->Document->read(null, $docId));
    }
 


get_details.ctp
Code: Alles auswählen

<?php pr($document); ?>
 


explorer_tree.js
Code: Alles auswählen

function getDetails(id) {
    $.post("documents/getDetails", {docId: id}, function(text){
        $("#details").text(text);
    });
}
 


im explorer_tree.php (Helper) folgende Zeile
Code: Alles auswählen

$this->html->tag('span', $doc['name'], array('onmouseover' => 'javascript&#058;getDetails(' . $doc['id'] . ');'));
 
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista


Zurück zu Helper

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron