Deux actions sur un bouton "Save"

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Deux actions sur un bouton "Save"

    Bonsoir,
    J'ai un bouton qui enregistre les données d'un formulaire dans une table.
    J'aimerai que ce bouton envoie des données dans un autre PHP en même temps.
    Je ne trouve pas la solution.

    Voici le bouton:
    Code:
    <div id="masque-pourCDP" class="control-group">
    		<div class="controls">
    			<?php if ($this->canSave): ?>
    			<button type="submit" class="validate btn btn-primary">
    			<?php echo JText::_('Enregistrer'); ?>
    			</button>
    								
    		<?php endif; ?>
    			<a class="btn"
    			href="<?php echo JRoute::_('index.php?option=com_crmform&task=projetform.cancel'); ?>"
    			title="<?php echo JText::_('JCANCEL'); ?>">
    			<?php echo JText::_('JCANCEL'); ?>
    		</a>
    				
    	</div>
    </div>		
    	<!-- ***** -->
    	<input type="hidden" name="option" value="com_crmform"/>
    	<input type="hidden" name="task"
    		value="projetform.save"/>
    	<?php echo JHtml::_('form.token'); ?>
    J'aimerai faire cela en même temps:

    Code:
    <form method="post" action="components/com_crmform/views/projetform/tmpl/envoiMail.php">
    ****<input type="hidden" name="IDcdp0" id="IdCDP0">
    ****<input class = "btn btn-primary" type="submit" value=" Envoyer une notification au CDP " />
    </form>
    Quelqu'un saurait-il me dire?

    Cordialement.

    Eric

  • #2
    Re : Deux actions sur un bouton &quot;Save&quot;

    Bonjour,
    Il me semble que tu as reçu une réponse sur un autre forum....


    Cordialement,
    Chabi01 - http://www.xlformation.com

    Commentaire


    • #3
      Re : Deux actions sur un bouton &quot;Save&quot;

      Salut
      Code PHP:
          <input type="hidden" name="option" value="com_crmform"/>
          <
      input type="hidden" name="task"  value="projetform.save"/> 
      Quand je vois ceci, tu as developpe un composant personnel?

      Si oui, peux tu me dire ce que tu as mis dans : /component/com_crmform/controllers/projetform.php et dans la fonction "public function save()"

      Car si le composant respecte les regles de joomla, c'est dans ce fichier que tu vas mettre la ou les operations lors de la validation.

      ++
      Wis

      Commentaire


      • #4
        Re : Deux actions sur un bouton &quot;Save&quot;

        Bonjour,
        Oui c'est un composant que je développe.
        Dans /component/com_crmform/controllers/projetform.php
        Souhaites-tu que je t'envoie le fichier entier ?

        Cordialement.

        Eric

        Code:
        	public function save()
        	{
        		// Check for request forgeries.
        		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
        
        		// Initialise variables.
        		$app   = JFactory::getApplication();
        		$model = $this->getModel('ProjetForm', 'CrmformModel');
        
        		// Get the user data.
        		$data = JFactory::getApplication()->input->get('jform', array(), 'array');
        
        		// Validate the posted data.
        		$form = $model->getForm();
        
        		if (!$form)
        		{
        			throw new Exception($model->getError(), 500);
        		}
        
        		// Validate the posted data.
        		$data = $model->validate($form, $data);
        
        		// Check for errors.
        		if ($data === false)
        		{
        			// Get the validation messages.
        			$errors = $model->getErrors();
        
        			// Push up to three validation messages out to the user.
        			for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++)
        			{
        				if ($errors[$i] instanceof Exception)
        				{
        					$app->enqueueMessage($errors[$i]->getMessage(), 'warning');
        				}
        				else
        				{
        					$app->enqueueMessage($errors[$i], 'warning');
        				}
        			}
        
        			$input = $app->input;
        			$jform = $input->get('jform', array(), 'ARRAY');
        
        			// Save the data in the session.
        			$app->setUserState('com_crmform.edit.projet.data', $jform);
        
        			// Redirect back to the edit screen.
        			$id = (int) $app->getUserState('com_crmform.edit.projet.id');
        			$this->setRedirect(JRoute::_('index.php?option=com_crmform&view=projetform&layout=edit&id=' . $id, false));
        		}
        
        		// Attempt to save the data.
        		$return = $model->save($data);
        
        		// Check for errors.
        		if ($return === false)
        		{
        			// Save the data in the session.
        			$app->setUserState('com_crmform.edit.projet.data', $data);
        
        			// Redirect back to the edit screen.
        			$id = (int) $app->getUserState('com_crmform.edit.projet.id');
        			$this->setMessage(JText::sprintf('Save failed', $model->getError()), 'warning');
        			$this->setRedirect(JRoute::_('index.php?option=com_crmform&view=projetform&layout=edit&id=' . $id, false));
        		}
        
        		// Check in the profile.
        		if ($return)
        		{
        			$model->checkin($return);
        		}
        
        		// Clear the profile id from the session.
        		$app->setUserState('com_crmform.edit.projet.id', null);
        
        		// Redirect to the list screen.
        		$this->setMessage(JText::_('COM_CRMFORM_ITEM_SAVED_SUCCESSFULLY'));
        		$menu = JFactory::getApplication()->getMenu();
        		$item = $menu->getActive();
        		$url  = (empty($item->link) ? 'index.php?option=com_crmform&view=projets' : $item->link);
        		$this->setRedirect(JRoute::_($url, false));
        
        		// Flush the data from the session.
        		$app->setUserState('com_crmform.edit.projet.data', null);
        	}

        Commentaire


        • #5
          Re : Deux actions sur un bouton &quot;Save&quot;

          Code PHP:
                  // Validate the posted data.
                  
          $data $model->validate($form$data); 
          Tu rajoutes dans ton model, la function testemail, avec a l'interieur tous les lignes concernant l'envoi d'un email.
          Tu rajoutes dans ton model, la function inscrbaseext, avec a l'interieur tous les lignes concernant l'enregistrement dans une base externe et tu les appelles a partir de ce fichier
          Bien sur le nom des fonctions depend que de toi.

          Code PHP:
                  // Validate the posted data.
                  
          $data $model->validate($form$data);
                          
          $sendemail $model->testemail(.....);
                          
          $reussitebaseexter $model->inscrbaseext(.....); 
          Puis apres tu regardes les resultats des fonctions si c'est true ou false et tu fais un traitement d'erreur. "echec le mail n'a pas ete envoye ou echec la ligne n'a pas ete inscrite dans la table" etc.....

          C'est comme cela que je ferai
          ++
          Wis

          Commentaire


          • #6
            Re : Deux actions sur un bouton &quot;Save&quot;

            Bonjour,
            Merci beaucoup.
            J'ai été absent presque toute la semaine dernière, je reprends le développement de mon composant maintenant.

            Je regarde ce que vous m'avez répondu.

            Encore merci beaucoup.

            Eric

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X