Empfehlungen: Erweiterte Suche

AJAX reload

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

AJAX reload

Beitragvon spearhead » Di 26. Jan 2010, 23:14

Hallo,

habe folgendes Problem: Wie in beigefügtem Bild zu sehen gebe ich in einer View den Kalender auf der linken Seite aus und rechts gibt es diese Box mit den Reitern. Der Inhalt dieser Box bzw. der Box des jeweiligen Reiters wird via
Code: Alles auswählen
$this->requestAction('/calcs/getCrew', array('return'));
 


geladen. Soweit so gut. Nun habe ich das Problem...ich möchte diese Formular darin (ich verwende übrigens jquery ohne irgendwelche AJAX Helper) asynchron posten und den Inhalt in der gleichen Box ausgeben. Leider habe ich keine Ahnung wie das syntaktisch umzusetzen ist. Das Formular führt im weiteren eine Action doCalc im Controlloer calcs aus die ihrerseits wieder eine ausgabeView hat.

Kann mir jemand helfen?
Dateianhänge
screen-capture.png
screen-capture.png (49.74 KiB) 268-mal betrachtet
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: AJAX reload

Beitragvon Mathias » Fr 29. Jan 2010, 00:16

Wenn deine action bei Ausführung eine view rendert, müsstest du doch quasi einen redirect auf die view haben, wenn du dein Formular absendest, oder? Da kannst du ja kaum was mit Ajax machen.
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: AJAX reload

Beitragvon spearhead » Fr 29. Jan 2010, 19:21

doch das geht schon...ich lade eine view die das formular beinhaltet...und dieses script mitbringt:
Code: Alles auswählen
function ajaxSubmitForm() {
                var dataString ='CalcVon='+$('#CalcVon').val()+'&CalcBis='+$('#CalcBis').val()+'&CalcId='+$('#C
alcId'
).val();
       
                $.ajax({
                        type:'POST',
                        data: dataString,
                        url:'/rdmanager/calcs/doCalc',
                        success: function(msg){
                                $('#try').html(msg);
                        }
                });
                return false;
        }


die action doCalc hat ihrerseits wiederum eine view und diesen code:
Code: Alles auswählen
 function doCalc(){
                $id = $this->params['form']['CalcId'];
                $von = $this->params['form']['CalcVon'];
                $bis = $this->params['form']['CalcBis'];


                if($this->RequestHandler->isAjax() == true) {
                        $result = $this->requestAction('/OrgUnitServices/getServicesByUserInc/'.$id.'/'.$von.'/'.$bis.'/');

                        if($result == null)

                        {

                                $value = 0;

                                $this->set('resultSet',$value);

                        }else {


                        $resultValue = 0;

                        foreach($result as $calcData){

                        $resultValue += $calcData ['OrgUnitService']['service_duration'];


                        }

                        $this->set('resultSet',$resultValue);
                }
                }
        }
 


und es funktioniert. Mein einziges Problem was ich nun noch habe ist die Tatsache das beim Internet Explorer beim ausführen des Formulars die Session gelöscht wird oder verloren geht. Aber wenn du mir helfen könntest das ganze mit nur 1er view zu machen wäre ich dir sehr verbunden...
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX


Zurück zu Konzeption und Vorgehensweise

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste