Changeset 117747 in spip-zone


Ignore:
Timestamp:
Sep 6, 2019, 4:37:09 PM (2 months ago)
Author:
maieul@…
Message:

radio et assimilé : condition js

Location:
_plugins_/saisies/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/trunk/inc/ancien-generer-js.php

    r117742 r117747  
    5959                        foreach ($matches[1] as $nom) {
    6060                                switch ($saisies[$nom]['saisie']) {
    61                                         case 'radio':
    62                                         case 'oui_non':
    63                                         case 'true_false':
    64                                                 $condition = preg_replace('#@'.preg_quote($nom).'@#U', '$(form).find("[name=\''.$nom.'\']:checked").val()', $condition);
    65                                                 break;
    6661                                        case 'case':
    6762                                                $condition = preg_replace('#@'.preg_quote($nom).'@#U', '($(form).find(".checkbox[name=\''.$nom.'\']").is(":checked") ? $(form).find(".checkbox[name=\''.$nom.'\']").val() : "")', $condition);
  • _plugins_/saisies/trunk/inc/saisies_afficher_si_js.php

    r117746 r117747  
    7070        }
    7171
    72         // Cas standard
    7372        // Cas d'une valeur numérique : pour le test js, cela ne change rien, on la passe comme valeur
    7473        if ($valeur_numerique and !$valeur) {
     
    7978                $guillemet = '\"';
    8079        }
     80
     81        // cas radio
     82        if ($saisie == 'radio' or $saisie == 'oui_non' or $saisie == 'true_false') {// radio et assimilés
     83                return saisies_afficher_si_js_radio($champ, $operateur, $valeur, $guillemet, $negation);
     84        }
     85        // sinon cas par défaut
    8186        return "$negation\$(form).find('[name=$champ]').val() $operateur $guillemet$valeur$guillemet";
    8287}
    8388
     89/**
     90 * Génère les tests js pour les cas de radio
     91 * @param string $champ
     92 * @param string $operateur
     93 * @param string $valeur
     94 * @param string $guillemet
     95 * @param string $negation
     96**/
     97function saisies_afficher_si_js_radio($champ, $operateur, $valeur, $guillemet, $negation) {
     98        return "$negation$(form).find(\"[name='$champ']:checked\").val() $operateur $guillemet$valeur$guillemet)";
     99}
    84100
    85101/**
  • _plugins_/saisies/trunk/tests/saisies_afficher_si/saisies_afficher_si_js.php

    r117746 r117747  
    2727        // les saisies à passer
    2828        $saisies_form = array();
    29         foreach (array('checkbox_1','input_1') as $saisie) {
     29        foreach (array('radio_1','checkbox_1','input_1') as $saisie) {
    3030                        $saisies_form[] = array(
    3131                                'saisie' => str_replace('_1', '', $saisie),
     
    114114                                2 => $saisies_form
    115115                        ),
     116                        'radio_egal' => array(
     117                                0 => '$(form).find("[name=\'radio_1\']:checked").val() == \'toto\')',
     118                                1 => '@radio_1@ == \'toto\'',
     119                                2 => $saisies_form
     120                        ),
     121                        'radio_inegal' => array(
     122                                0 => '$(form).find("[name=\'radio_1\']:checked").val() != \'toto\')',
     123                                1 => '@radio_1@ != \'toto\'',
     124                                2 => $saisies_form
     125                        ),
    116126                        'false' => array(
    117127                                0 => 'false',
Note: See TracChangeset for help on using the changeset viewer.