Bonjour,
Je suis actuellement la série tutoriel php creer un site web et j'ai un probleme avec mon classError qui ne s'affiche pas. Merci d'avance !!
Form.php

<?php
class Form{

    public $controller;
    public $errors;

    public function  __construct($controller){
        $this->controller = $controller;
    }

    public function input($name,$label,$options = array()){
        $error = false;
        $classError = '';
        if(isset($this->errors[$name])){
            $error = $this->errors[$name];
            $classError = 'danger';
        }
        if(!isset($this->controller->request->data->$name)){
            $value = '';
        }else{
            $value = $this->controller->request->data->$name;
        }
        if($label == 'hidden'){
            return '<input type="hidden" name="'.$name.'" value="'.$value.'">';
        }
        $html = '<div class="clearfix'.$classError.'">
                    <label for="input'.$name.'">'.$label.'</label>
                    <div class="input">';
        $attr = ' ';
        foreach($options as $k=>$v){ if($k!='type'){
            $attr .= "$k=\"$v\"";
        }}
        if(!isset($options['type'])){
            $html .= '<p><input type="text" id="input'.$name.'" name="'.$name.'" value="'.$value.'"'.$attr.'</p>';
        }elseif($options['type'] == 'textarea'){
            $html .= '<p><textarea id="input'.$name.'" name="'.$name.'"'.$attr.'>'.$value.'</textarea></p>';
        }
        elseif($options['type'] == 'checkbox'){
            $html .= '<p><input type="hidden" name="'.$name.'" value="0"><input type="checkbox" name="'.$name.'" value="1" '.(empty($value)?'':'checked').'></p>';
        }
        if($error){
            $html .= '<span class="help-inline">'.$error.'</span>';
        }

        $html .= '</div></div>';
        return $html;
    }

}

3 réponses


arcoss 3x
Auteur
Réponse acceptée

J'ai trouvé !!!!

public function input($name,$label,$options = array()){
        $error = false;
        $classError = '';
        if(isset($this->errors[$name])){
            $error = $this->errors[$name];
            $classError = 'alert alert-danger';
        }

Quand tu inscpecte l'élement ça donne quoi ?
A mon avis, tu dois avoir :

<div class="clearfixdanger">

Au lieu de :

<div class="clearfix danger">

Je me trompe ? Si c'est pas le cas, ajoute un espace ici :

$html = '<div class="clearfix '.$classError.'">

Bonjour,
Non ça marche pas même avec l'espace mais peut-être que ce viens pas de mon clearfix car quand je mets <div class="clearfix danger"> ca ne marche pas non plus ... Quand je l’inspecte j'ai rien mis à part que mon boostrap.min.css est chargé.