Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-04-2015 12:22:52

simsam
Nouveau membre
Date d'inscription: 01-04-2015
Messages: 5

Checkbox multiple et envoi des emails, avec récupération d'une DB

Bonjour tout le monde,
Je suis débutante avec zend 2 et je viens de développer ma première application.
J'ai un pop up contenant liste des utilisateurs, en checkbox, récupérés de la base de données avec un boutton "Inviter". Si je clique sur le bouton "Inviter", je voulais envoyés des emails à ces personnes sélectionnées en checkbox mais là j'ai pas pu récupérer les ids de chekbox checked dans mon controlleur pour un envoi multiple.
Voila mon code phtml:

Code:

[lang=php]<div class="modal fade" id="cnx_modal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" style="padding-right: 17px; width:700px; margin-left: 450px;">    
                        <div class="modal-dialog" style="background-color: #333333;">
                            <div class="modal-content" style="background-color: #333333;" >
                                <div class="modal-header">
                                    <button type="button" class="close" data-dismiss="modal" ><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                                    <h4 class="modal-title" id="myModalLabel"></h4>
                                </div>
                                <form action="#" method="post" class="search nav-form">
                                    <div class="input-group input-search" style="width: 550px; margin-top: 30px;">
                                        <input type="text" class="form-control" name="q" id="q" style="margin-left: 30px; border-radius: 0px;" placeholder="<?php echo $this->translate('Search'); ?>..." style="border-radius:0px;">
                                        <span class="input-group-btn">
                                            <button class="btn btn-default" type="submit"><i class="fa fa-search" id="search"></i></button>
                                        </span>
                                    </div>
                                </form>
                                <br>

                            <?php foreach ($users as $frnd) : ?>        
                                    <form method="post">
                                        <div class="" style="margin-left: 30px;">
                                            <H2 style="color:#DDD">
                                                <input type="hidden" name="box1" value="0" />
                                                <img src="/img/userEv.png" class="img-thumbnail"></img>&nbsp;&nbsp;&nbsp;
                                                <input type="checkbox" id="<?php echo htmlspecialchars_decode($frnd->id); ?>" name="userId[]" value="1"> 

                             <?php echo htmlspecialchars_decode($frnd->firstname); ?>&nbsp;&nbsp;&nbsp;
                             <?php echo htmlspecialchars_decode($frnd->lastname); ?>&nbsp;
                                                (<?php echo htmlspecialchars_decode($frnd->ville); ?>,&nbsp;<?php echo htmlspecialchars_decode($frnd->pays); ?>)
                                            </H2>
                                        </div>
                                    </form>
                            <?php endforeach; ?>
                                <div class="row"></div>
                                <form method="post" action="/calendar/eventdetails/<?php echo htmlspecialchars_decode($event->id); ?>">
                                    <div class="button_suivre" style="">
                                        <button class="btn btchange" name="invitUser" value="Invit" id="invitUser" style="margin-left:510px; border-radius:0px; width:130px; border-color:#357ebd;margin-top: 10px;border: 1px solid #DDD;"> Invit </button>
                                    </div><br><br>
                                </form>

                                <div class="row"></div>
                            </div> <!-- /.modal-content -->
                        </div> <!-- /.modal-dialog -->
                    </div> <!-- /.modal -->

Et voilà mon action dans l'indexController :

Code:

[lang=php]   public function eventdetailsAction() {
        $id = (int) $this->params()->fromRoute('id', 0);
        $this->layout()->setVariable('lang', $this->params()->fromRoute('lang', 'en_US'));
        $this->layout()->setVariable('action', $this->params()->fromRoute('action', 'index'));

       $request = $this->getRequest();
       $aPost = $request->getPost();
        
if (isset($aPost['invitUser'])) {
             $user = new Container('user');
            $db = $this->getServiceLocator()->get('db1');

            if (!$user->offsetExists('id')) {
                $idconnected = '0';
            } else {
                $idconnected = $user->offsetGet('id');
                $mail = $db->query("SELECT email FROM user")->execute()->current();// je veux tester si l iduser= id de chekbox (en boucle)
                
                $message = new Message();
                foreach ($mail as $recip) {
                    $message->addTo($recip)
                            // $message->addTo('xxxx@hotmail.com', 'eee@web.com')
                            ->addFrom('xxxxx@gmail.com')
                            ->setSubject('Invitation for the event : Event Latino');
                }

                // Setup SMTP transport using LOGIN authentication
                $transport = new SmtpTransport();
                $options = new SmtpOptions(array(
                    'host' => 'smtp.gmail.com',
                    'connection_class' => 'login',
                    'connection_config' => array(
                        'ssl' => 'tls',
                        'username' => 'xxxxx@gmail.com',
                        'password' => '******'
                    ),
                    'port' => 587,
                ));

                $html = new MimePart('<b>Invitation for the event: Latin Night, orgonized by Mr. Jony Cornillon. Date : 06/04/2015</b>');
                $html->type = "text/html";

                $body = new MimeMessage();
                $body->addPart($html);
              
                $message->setBody($body);

                $transport->setOptions($options);
                $transport->send($message);
               
            }
            
         }}

Merci pour votre aide.

Dernière modification par simsam (03-04-2015 12:23:04)

Hors ligne

 

#2 03-04-2015 14:03:45

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Checkbox multiple et envoi des emails, avec récupération d'une DB

Hello,
pour récupérer une variable en ZF2 tu peu utiliser :

Code:

[lang=php]
$maVar = $this->params()->fromPost('paramname');

ensuite pour ta requête je te conseil de faire une requête du style :
'SELECT * FROM user  WHERE id IN (1,2,3,4, ...)

EDIT : Evidemment fromPost va chercher dans les variable en post ($_POST) wink

Dernière modification par flobrflo (03-04-2015 14:04:26)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages