2010-04-26 8 views
0

En utilisant Codeigniter, comment obtenir et afficher, à partir de mon contrôleur, tout le texte qu'un utilisateur a entré dans un champ de texte dans une vue? Je reçois seulement le premier mot, et rien après les espaces.L'entrée de formulaire obtient 1 mot

Voici mes règles form_validation

$this->form_validation->set_rules(
'field_name','Field Name','trim|required|alpha_numeric|tolower|xss_clean'); 

Et voici mon contrôleur

public function my_method() { 
    if ($this->input->post()) { 
    $name = $this->input->post('search'); 
    echo $name; 
    } 
} 

et moi

?php echo form_open('my_controller/my_method'); ?> 
<?php echo form_input('search'); ?> 
<?php echo form_submit('submit', 'Search'); ?> 

Répondre

1

Hmm .. Essayez de prendre sur 'l'assiette'?

$ this-> form_validation-> set_rules ( 'field_name', 'Nom du champ', 'requise | alpha_numeric | tolower | xss_clean');

Sinon, essayez de supprimer xss_clean.

+0

+1 Merci pour votre réponse. C'était la première chose que j'ai faite, mais cela n'a pas fonctionné. – Anthony

+0

xss_clean? N'est-ce pas important pour empêcher les choses de script intersite? – Anthony

2

Parce que, vous avez spécifié alpha_numeric. Un caractère espace n'est pas un caractère alphabétique, ni un nombre, donc il tronque la chaîne.

+0

+1 Merci pour la réponse. Oh ouais c'était évident. Hmmm. Y a-t-il une règle de CI que je pourrais mettre en place et qui permettrait des espaces? – Anthony

1

Vous n'avez pas besoin de spécifier une règle "qui autoriserait les espaces". Vous devez toutefois toujours spécifier une longueur maximale pour les champs de saisie de caractères.

max_length[255] 
+0

+1 Merci pour cette astuce, c'est vrai, je vais le mettre. – Anthony

Questions connexes