Empfehlungen: Erweiterte Suche

Action ohne view

Fragen zur Konzeptionierung und womit man am besten anfäng? Hier rein...

Action ohne view

Beitragvon Luka » Do 12. Feb 2009, 18:00

Hi,

so langsam komme ich mit meiner Rezeptseite voran und ich bin nun auf den folgenden Punkt gestossen. Ich moechte gerne das ein Mitglied ein Rezept in seinem Kochbuch speichern kann.
Dafuer brauche ich einen link auf der Seite mit dem Rezept "Zum Kochbuch hinzufuegen". Also eigentlich ganz normal. Wenn der Besucher eingeloggt ist soll dann das Rezept automatisch hinzugefuegt werden und der Link aendert sich, wenn nicht eingeloggt soll das Login Fenster erscheinen.

Meine Frage nun, fuer den link verwende ich den controller: mybox und dort action: add
add soll mir nur die recipe_id zusammen mit der user_id abspeichern in meine tabelle mybox. Ein add view soll es nicht geben, sondern das Rezept soll weiterhin angezeigt werden und nur der Status vom Link soll sich aendern.

Hat das irgendetwas mit Ajax zu tun oder wonach soll ich schauen? Mit fehlt momentan der Ansatz. Freue mich ueber jeden Ansatz. Vielen Dank im Voraus.
Luka
 
Beiträge: 24
Registriert: Sa 2. Aug 2008, 13:56
CakePHP-Version: 1.2
OS: XP

Re: Action ohne view

Beitragvon Flo » Fr 13. Feb 2009, 04:10

controller
Code: Alles auswählen

var $helpers = array('ajax');
 

view
Code: Alles auswählen

echo $ajax->link('Zum Kochbuch hinzufuegen','/mybox/add/1',array()
 

was man in array für möglichkeiten hat kannst du unter http://api.cakephp.org/class/ajax-helper#method-AjaxHelperlink nachlesen
Flo
 
Beiträge: 85
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6

Re: Action ohne view

Beitragvon Luka » Fr 13. Feb 2009, 17:33

Hi,

Erstmal Danke fuer den Tip. Irgendwie schaffe ich es aber nicht AJAX zum Laufen zu bringen. Ich habe also folgendes eingebaut:

Code: Alles auswählen
 echo $ajax->link('Zum Kochbuch hinzufuegen', array('controller' => 'myboxs', 'action' =>'add'),
 array('insert' => '1'));


insert 1 war nur zum testen.

Habe dann die protoype.js Datei aus dem Netz runtergeladen und im default.ctp dies eingefuegt:
Code: Alles auswählen
<?php e($javascript->link(array('prototype'))); ?>


Wie kann ich nun testen, ob wirklich in den controller myboxs action add gesprungen wird? Wie kann ich testen, ob Ajax wirklich aktiv ist? Ich suche nun bereits den ganzen Tag nach einer Loesung, aber es passiert einfach nichts. Es ist bestimmt nur eine Kleinigkeit die ich uebersehe oder?

Gruss Luka
Luka
 
Beiträge: 24
Registriert: Sa 2. Aug 2008, 13:56
CakePHP-Version: 1.2
OS: XP

Re: Action ohne view

Beitragvon Flo » Fr 13. Feb 2009, 21:17

du könntest z.B eine ausgabe in der Funktion add machen (was du dann hinterher ja nichtmehr brauchst)
Code: Alles auswählen

function add()
{
    echo "test";
    exit;
}
 


um das ganze zu Testen,
Code: Alles auswählen

<div id="testbox"></div>
echo $ajax->link('Zum Kochbuch hinzufuegen', array('controller' => 'myboxs', 'action' =>'add'),
array(
'insert' => '1',
'update' => 'testbox',
));
 


damit sagst du dann halt dass,das Div mit der ID testbox geupdated werden soll mit der Rückgabe des Ajax Requests.
Flo
 
Beiträge: 85
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6

Re: Action ohne view

Beitragvon Luka » Mo 16. Feb 2009, 10:41

Hi Flo,

vielen, vielen Dank, zumindestens konnte ich es jetzt mal testen und feststellen, dass es tatsaechlich in die Funktion springt. Ein Erfolg :)
Nun muss ich nur noch rausfinden, wie ich die DB updaten kann. Im Moment wird immer noch nichts reingeschrieben...
Luka
 
Beiträge: 24
Registriert: Sa 2. Aug 2008, 13:56
CakePHP-Version: 1.2
OS: XP


Zurück zu Konzeption und Vorgehensweise

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron