Empfehlungen: Erweiterte Suche

SMS Formular+ Empfänger hinzufügen

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

SMS Formular+ Empfänger hinzufügen

Beitragvon spearhead » Mi 19. Mai 2010, 23:00

Hallo hab folgende Ausgangssituation. Ich hab ein Formular in einer View das mir in einem DropDown Empfängergruppen ausgeben soll. Der User soll dann im Dropdown die gewünschte Gruppe auswählen können und via hinzufügen Schaltfläche diese Gruppe in eine Liste aufnehmen um gleichzeitig an mehrere Gruppen SMS zu versenden. Dies sollte im optimalen Fall asynchron also ohne Pagereload möglich sein, und am allerbesten wäre es wenn darüber hinaus diese Gruppe im Dropdown auch nicht mehr auswählbar wäre. Soweit so gut. Ich hab leider nur überhaupt keinen Plan wie ich das am besten mache. Übrigens verwende ich als Javascript Framework jQuery!

greatz

flo
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: SMS Formular+ Empfänger hinzufügen

Beitragvon euromark » Do 20. Mai 2010, 14:19

es gibt dafür multiple-select-jquery plugins
musst ma nach suchen, aber da haste alles in einem paket quasi
euromark
 
Beiträge: 618
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: SMS Formular+ Empfänger hinzufügen

Beitragvon spearhead » Di 25. Mai 2010, 22:52

cool danke...dabei stellt sich nun folgendes problem:

Ich nutze dieses http://www.erichynds.com/examples/jquery-multiselect/examples.htm jQuery Plugin in der Basic Ausgabe.

Eingebunden wird das ganze so:
Code: Alles auswählen
<script type="text/javascript">
$(document).ready(function(){
    $(".multiselect").multiSelect();
});
</script>

<?php

 echo $javascript->codeBlock("

        function ajaxSMSForm() {
            var dataString ='message='+$('#SmsGatewayMessage').val()+'&amp;groups='+$('.multiselect').val();
                $.ajax({
                        type:'POST',
                        data: dataString,
                        url:'/rdmanager/sms_gateways/sendGroupSms',
                        success: function(msg){
                                $('#result').html(msg);
                        }
                });
                return false;
        }


        "
);


echo $form->create("SmsGateway",array('type'=>'POST','action' =>'sendGroupSms','onsubmit'=>'ajaxSMSForm();return false;'));
echo ('<h3>Nachricht</h3>');
echo $form->textarea('message',array('class' => 'sms_input'));
echo ('<br/>');
echo($form->select('groups',$groups,null,array('id'=>'test','multiple'=>'multiple','class'=>'multiselect')));
echo('<br/>');
echo('<div id="result"></div>');
echo $form->end("Senden");
?>
 


Im Korrespondierenden Controller möchte ich nach dem asynchronen Submiten des Formulars SO auf die Variablen zugreifen die übergeben werden:
Code: Alles auswählen
$msg = $this->params['form']['message'];
$sendlist = $this->params['form']['groups'];
 


Theoretisch müsste doch ein Array übergeben werden das die angeklickten Werte des DropDown's übergibt. Leider steht in $sendlist lediglich UNDEFINED.

Leider brauch ich das ganze "asynchron" da es sich hierbei um ein in der Seitenleiste integriertes Formular zum SMS Versand handelt, und ich somit leider nicht via
Code: Alles auswählen
$this->data


auf die Formularvariablen zugreifen kann....


kann mir jemand weiter helfen?
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: SMS Formular+ Empfänger hinzufügen

Beitragvon Jörg » Di 8. Jun 2010, 21:54

Hi,

da du den AJAX-Request per POST absendest, kannst du dir in die $this->data Variable deine POST-Daten ganz konventionell mit PHP schreiben.

Code: Alles auswählen

$this->data = $_POST;
 


Anders kommst du so nicht an deine übermittelten Daten heran, da du das "POST" asynchron ausführst und nicht über das CakePHP-Framework.
Hoffe das Problem löst sich damit. ;)
Jörg
 
Beiträge: 105
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: SMS Formular+ Empfänger hinzufügen

Beitragvon euromark » Mi 9. Jun 2010, 01:10

url:'/rdmanager/sms_gateways/sendGroupSms',

das schaut für mich aber schon verdammt cake-intern aus... irgendwie
wozu also $_POST?

debug mal das $this->data array!
pr() oder debug() drauf anwenden, was drin steht
euromark
 
Beiträge: 618
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: SMS Formular+ Empfänger hinzufügen

Beitragvon Jörg » Mi 9. Jun 2010, 08:03

Bestenfalls solltest du dir via Router::url(array('controller' => 'controllername', 'action' => 'controlleraction'), true) die URL für den AJAX-Request generieren lassen. So bist du dann auch noch auf der sicheren Seite, dass die URL stimmt. ;)
Jörg
 
Beiträge: 105
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu


Zurück zu Konzeption und Vorgehensweise

Wer ist online?

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