developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #757: 757-jForms-some-controls-are-selected-by-default-if-their-values-are-0.diff

File 757-jForms-some-controls-are-selected-by-default-if-their-values-are-0.diff, 6.3 KB (added by Julien, 13 years ago)
  • lib/jelix/plugins/jforms/html/html.jformsbuilder.php

     
    498498        $span ='<span class="jforms-chkbox jforms-ctl-'.$ctrl->ref.'"><input type="checkbox"';
    499499
    500500        if(is_array($value)){
     501            $value = array_map(create_function('$v', 'return (string) $v;'),$value);
    501502            foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    502503                echo $span,$attrs,$i,'" value="',htmlspecialchars($v),'"';
    503                 if(in_array($v,$value))
     504                if(in_array((string) $v,$value,true))
    504505                    echo ' checked="checked"';
    505506                echo $readonly,$class,$this->_endt,'<label for="',$id,$i,'">',htmlspecialchars($label),'</label></span>';
    506507                $i++;
    507508            }
    508509        }else{
     510            $value = (string) $value;
    509511            foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    510512                echo $span,$attrs,$i,'" value="',htmlspecialchars($v),'"';
    511                 if($v == $value)
     513                if((string) $v === $value)
    512514                    echo ' checked="checked"';
    513515                echo $readonly,$class,$this->_endt,'<label for="',$id,$i,'">',htmlspecialchars($label),'</label></span>';
    514516                $i++;
     
    584586                $value = $value[0];
    585587
    586588            if(is_array($value)){
     589                $value = array_map(create_function('$v', 'return (string) $v;'),$value);
    587590                foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    588                     echo '<option value="',htmlspecialchars($v),'"',(in_array($v,$value)?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
     591                    echo '<option value="',htmlspecialchars($v),'"',(in_array((string) $v,$value,true)?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
    589592                }
    590593            }else{
     594                $value = (string) $value;
    591595                foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    592                     echo '<option value="',htmlspecialchars($v),'"',($v==$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
     596                    echo '<option value="',htmlspecialchars($v),'"',((string) $v===$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
    593597                }
    594598            }
    595599            echo '</select>';
     
    603607                    $value ='';
    604608            }
    605609
     610            $value = (string) $value;
    606611            echo '<select',$id,$hint,$class,' size="',$ctrl->size,'">';
    607612            foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    608                 echo '<option value="',htmlspecialchars($v),'"',($v==$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
     613                echo '<option value="',htmlspecialchars($v),'"',((string) $v===$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
    609614            }
    610615            echo '</select>';
    611616        }
  • lib/jelix/plugins/jforms/htmllight/htmllight.jformsbuilder.php

     
    483483        $span ='<span class="jforms-chkbox jforms-ctl-'.$ctrl->ref.'"><input type="checkbox"';
    484484
    485485        if(is_array($value)){
     486            $value = array_map(create_function('$v', 'return (string) $v;'),$value);
    486487            foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    487488                echo $span,$attrs,$i,'" value="',htmlspecialchars($v),'"';
    488                 if(in_array($v,$value))
     489                if(in_array((string) $v,$value,true))
    489490                    echo ' checked="checked"';
    490491                echo $readonly,$class,$this->_endt,'<label for="',$id,$i,'">',htmlspecialchars($label),'</label></span>';
    491492                $i++;
    492493            }
    493494        }else{
     495            $value = (string) $value;
    494496            foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    495497                echo $span,$attrs,$i,'" value="',htmlspecialchars($v),'"';
    496                 if($v == $value)
     498                if((string) $v === $value)
    497499                    echo ' checked="checked"';
    498500                echo $readonly,$class,$this->_endt,'<label for="',$id,$i,'">',htmlspecialchars($label),'</label></span>';
    499501                $i++;
     
    569571                $value = $value[0];
    570572
    571573            if(is_array($value)){
     574                $value = array_map(create_function('$v', 'return (string) $v;'),$value);
    572575                foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    573                     echo '<option value="',htmlspecialchars($v),'"',(in_array($v,$value)?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
     576                    echo '<option value="',htmlspecialchars($v),'"',(in_array((string) $v,$value,true)?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
    574577                }
    575578            }else{
     579                $value = (string) $value;
    576580                foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    577                     echo '<option value="',htmlspecialchars($v),'"',($v==$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
     581                    echo '<option value="',htmlspecialchars($v),'"',((string) $v===$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
    578582                }
    579583            }
    580584            echo '</select>';
     
    588592                    $value ='';
    589593            }
    590594
     595            $value = (string) $value;
    591596            echo '<select',$id,$hint,$class,' size="',$ctrl->size,'">';
    592597            foreach($ctrl->datasource->getData($this->_form) as $v=>$label){
    593                 echo '<option value="',htmlspecialchars($v),'"',($v==$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
     598                echo '<option value="',htmlspecialchars($v),'"',((string) $v===$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>';
    594599            }
    595600            echo '</select>';
    596601        }