39 lines
		
	
	
		
			882 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			882 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\v\plugins;
 | |
| 
 | |
| use nur\v\BasePlugin;
 | |
| use nur\v\js;
 | |
| 
 | |
| /**
 | |
|  * Class autosubmitSelectPlugin: soumet le formulaire sur l'événement change
 | |
|  */
 | |
| class autosubmitOnEventPlugin extends BasePlugin {
 | |
|   const HAVE_JQUERY = true;
 | |
| 
 | |
|   function __construct(string $selector, string $event="change", bool $cond=true) {
 | |
|     $this->selector = $selector;
 | |
|     $this->event = $event;
 | |
|     $this->cond = $cond;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * @var string sélecteur pour les composants concernés.
 | |
|    */
 | |
|   private $selector;
 | |
| 
 | |
|   /** @var string événement sur lequel déclencher la soumission du formulaire */
 | |
|   private $event;
 | |
| 
 | |
|   /** @var bool ce plugin est-il activé? */
 | |
|   private $cond;
 | |
| 
 | |
|   function printJquery(): void {
 | |
|     if (!$this->cond) return;
 | |
|     ?>
 | |
| $(<?=js::qv($this->selector)?>).on(<?=js::qv($this->event)?>, function() {
 | |
|   $(this).closest("form").submit();
 | |
|   return false;
 | |
| });
 | |
| <?php
 | |
|   }
 | |
| }
 |