J'ai écrit une simple fonction de rappel qui ne fonctionne pas. Mes autres fonctions de rappel (qui sont dans le même fichier de bibliothèque) fonctionnent bien, donc je suppose que le problème vient de mon code.
Le paramètre passé dans la fonction de rappel prend la forme d'un morceau de PHP qui est évalué par eval() pour faire partie d'une instruction "if()" dans la fonction elle-même.
Voici ce qu'il y a dans le contrôleur :
$this->form_validation->set_rules('rating', 'Rating','required');
$condition = $this->input->post('rating') . " != 'Excellent'";
$this->form_validation->set_rules('details', 'Details', 'required_conditional[' . htmlentities($condition) .']');
Et voici la fonction de rappel elle-même :
function required_conditional($str, $condition)
{
if (eval(html_entity_decode($condition))) {
if ($str == '') {
$this->set_message('required_conditional', 'The %s field is required');
return FALSE;
}
else {
return TRUE;
}
}
}
Quelqu'un a-t-il une idée de la raison pour laquelle ça ne fonctionne pas ?
Merci, Matt.