Empfehlungen: Erweiterte Suche

controller und Ajax

JavaScript und AJAX

controller und Ajax

Beitragvon saschaappel » Di 4. Mai 2010, 20:08

Hallo Zusammen

Komme bei meinen Ajax request mit Jquery und CakePhp nicht weiter.
Folgendes Problem:

Jquery request in view request.cpt:
Code: Alles auswählen

$(document).ready(function(){
         $("#generate").click(function(){
            $("#quote p").load("/hm-picture/OrderProcesses/request");
         });
      });
 


Controller OrderProcesses:
Code: Alles auswählen

 function request() {
            $prefixes = array('Mashup','2.0','Tagging','Folksonomy');
            $suffixes = array('Web','Push','Media','GUI');
            // This selects a random element of each array on the fly
            echo $pages = $prefixes[rand(0,count($prefixes)-1)] . " is the new "
            . $suffixes[rand(0,count($prefixes)-1)];
       }
 


Das funktioniert leider nicht, ich bekomme danach immer die ganze Seite und nicht nur den echo als request. Wie kann ich im controller definieren das er nur den echo an den browser schickt und nicht die ganze Seite??

Vielen dank und gruss
saschaappel
 
Beiträge: 3
Registriert: Do 4. Feb 2010, 22:50

Re: controller und Ajax

Beitragvon Flo » Di 4. Mai 2010, 21:45

du müsstest deine Ausgabe in ein View auslagern und das "ajax" layout benutzen

Code für deine Funktion
Code: Alles auswählen

function request() {
    $this->layout = 'ajax';
    $prefixes = array('Mashup','2.0','Tagging','Folksonomy');
    $suffixes = array('Web','Push','Media','GUI');
    $this->set('suffixes',$suffixes);
    $this->set('prefixes', $prefixes);
}
 

Code für den View (request.ctp)
Code: Alles auswählen

<?php
// This selects a random element of each array on the fly
echo $pages = $prefixes[rand(0,count($prefixes)-1)] . " is the new "
. $suffixes[rand(0,count($prefixes)-1)];
?>
 

hoffe es hilft :)
Flo
 
Beiträge: 85
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6

Re: controller und Ajax

Beitragvon saschaappel » Di 4. Mai 2010, 23:09

Hi

Perfekt danke so gehts :-)

Dann lag es einfach an $this->layout = 'ajax'; Nur schade das er im debug mode = 2 immer noch diese ausgabe ranhängt, oder kann man das verhindern...

Ansonsten super :-)

Vielen dank und Gruss
Sascha
saschaappel
 
Beiträge: 3
Registriert: Do 4. Feb 2010, 22:50

Re: controller und Ajax

Beitragvon Flo » Di 4. Mai 2010, 23:28

Um für Ajax Requests den Debug zu ändern müsste man abfangen ob es ein AjaxRequest ist...
hier mal ein Beispiel wie das Global gehen würde für den Fall das debug auf 2 ist
Code: Alles auswählen

<?php
class AppController extends Controller {
    var $helpers = array('Html','Form');
    var $components = array('Session','RequestHandler');
    function beforeFilter()
    {
        if ($this->RequestHandler->isAjax() &amp;&amp; Configure::read('debug') == 2) {
            Configure::write('debug','1');
        }
    }
}

?>
 
Flo
 
Beiträge: 85
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6


Zurück zu JavaScript und AJAX

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron