nur-sery/nur_src/v/plugins/autosubmitSelectPlugin.php

38 lines
922 B
PHP

<?php
namespace nur\v\plugins;
use nur\v\BasePlugin;
use nur\v\js;
/**
* Class autosubmitSelectPlugin: soumet le formulaire si la sélection change
*/
class autosubmitSelectPlugin extends BasePlugin {
const HAVE_JQUERY = true;
function __construct(?string $selector, ?bool $cond=null) {
if ($selector === null) $selector = "select:not(.no-autosubmit)";
if ($cond === null) $cond = $selector? true: false;
$this->selector = $selector;
$this->cond = $cond;
}
/**
* @var string sélecteur pour les composants concernés. par défaut, prendre
* tous les éléments select qui n'ont pas la classe no-autosubmit
*/
private $selector;
/** @var bool ce plugin est-il activé? */
private $cond;
function printJquery(): void {
if (!$this->cond) return;
?>
$(<?=js::qv($this->selector)?>).change(function() {
$(this).closest("form").submit();
return false;
});
<?php
}
}