Je comprends que set_value()
est utilisé pour remplir un formulaire en cas d'échec de la validation. Mais si le champ est empty()
(c'est pourquoi il a échoué) peut set_value() insérer une valeur par défaut à la place?Codeigniter: Chaîne d'insertion si set_value() est vide
1
A
Répondre
1
J'ai trouvé la réponse. Cela implique d'intercepter la valeur dans set_rules()
en utilisant 2 fonctions de rappel. J'ai supprimé le code pour ce post, donc c'est plus facile à comprendre.
Le fichier de configuration:
// This is where the default text will come from so it's easy to modify
// The second config (['address']) is there just to show that ['test'] is an array
$config['test']['name'] = 'Default Text';
$config['test']['address'] = 'Some other text';
Les règles:
// The sample rule. Do not add 'required' in the rules since _sanitize already
// does the checking for blank values. Insert the name of the field
// within the []. _sanitize() needs to be called before _check().
$this->form_validation->set_rules('name', 'Name', 'trim|callback__sanitize[name]|callback__check[name]');
Les deux fonctions de rappel: _sanitize() et _Consultez()
// CALLBACK: _sanitize
/*
* If field is empty(), inserts the default value found in the config file
* Works alongside _check().
*/
public function _sanitize($str, $arg){
if(empty($str)){
$text = $this->config->item('test');
return $text[$arg];
}
// If !empty(), return the value as if nothing happened
return $str;
}
// CALLBACK: _check
/*
* If value is equivalent to the default value (from the config file), mark it as FALSE
* Works alongside _sanitize().
*/
public function _check($str, $arg){
$text = $this->config->item('test');
if($str == $text[$arg]){
$this->form_validation->set_message('_check', 'The %s field is required');
return FALSE;
}
return TRUE;
}
Enfin, le code de la vue:
// Put at top of page
<?php
$name = array(
'name'=>'name',
'value'=>set_value('name'),
'class'=>"form-text",
'maxlength'=>200
);
?>
// Put within the page
<?php echo form_input($name); ?>
Questions connexes
- 1. set_value() par défaut dans CodeIgniter
- 2. comportement CodeIgniter étrange avec set_value
- 3. Le CodeIgniter set_value() ne fonctionne pas?
- 4. Utiliser set_value + une autre valeur dans codeigniter
- 5. Codeigniter - Appel à la fonction indéfinie set_value()
- 6. set_value dans codeigniter ne répond pas
- 7. C++ - Vérifier si la chaîne est vide
- 8. Si la chaîne est vide, affecter null
- 9. Codeigniter - Set_value sur l'état vérifié de la case à cocher
- 10. IOS: vérifier si une chaîne est une chaîne vide
- 11. La fonction set_value ne fonctionne pas dans codeIgniter 3
- 12. Vérifiez si stderr est vide
- 13. Pourquoi $ _POST est-il vide dans Codeigniter?
- 14. Comment puis-je utiliser set_value de CodeIgniter pour un champ qui est un tableau?
- 15. SQL: Si le champ est vide, renvoie la chaîne vide, sinon le numéro est
- 16. Comment vérifier si une chaîne est vide dans Elixir
- 17. Vérification SQL si une valeur est une chaîne vide? Ce
- 18. preg_replace - ne comprennent pas la chaîne si 4 $ est vide
- 19. XSLT masquer l'élément SI la chaîne est vide
- 20. Comment vérifier si une chaîne est vide dans Emacs Lisp?
- 21. La chaîne est vide ou vide
- 22. Comment récupérer une valeur d'OPTION vide si elle est vide?
- 23. CodeIgniter $ _POST données vide
- 24. Vérifiez si dataGridView est vide
- 25. jquery: si ul est vide
- 26. Déterminer si NSFetchedResultsController est vide
- 27. jQuery si l'entrée est vide
- 28. Vérifier si NumericUpDown est vide
- 29. vérifier si NSNumber est vide
- 30. Si la valeur est vide