Comment traiter un formulaire avec CodeIgniter
Je suis nouveau sur CodeIgniter. J'ai besoin de traiter un formulaire. J'ai un form.html page en vue
<html>
<head>
<title>Search</title>
</head>
<body>
<form action="search">
<input type="text" name="search" value="" size="50" />
<div>
<input type="submit" value="Submit" />
</div>
</form>
</body>
</html>
et la forme contrôleur
class Form extends Controller {
function Form() {
parent::Controller();
}
function index() {
$this->load->view('form');
}
}
et j'ai un fichier de vue search.php mais lorsqu'il est traité, il indique que la page est introuvable...
OriginalL'auteur Ramesh | 2010-02-17
Vous devez vous connecter pour publier un commentaire.
Dans M.odel V.iew C.ontroller configurations comme CodeIgniter les points de Vue sont des éléments de l'interface utilisateur. Ils ne doivent pas être l'analyse des résultats.
Si je ne me trompe pas, ce que vous cherchez à faire est de passer des données à partir de
www.yoursite.com/index.php/form
àwww.yoursite.com/index.php/search
À des activités non structurées php, vous pourriez avoir un
form.html
avec une forme d'action desearch.php
. Un utilisateur de naviguer àyoursite.com/form.html
, qui appellentyoursite.com/search.php
, qui pourrait rediriger versyoursite.com/results.php
.Dans CodeIgniter (et, comme je le comprends, dans n'importe quel système MVC, quelle que soit la langue) votre Contrôleur,
Form
appelle une fonction qui charge leform.html
Vue en lui-même puis l'exécute. Le Vue génère le code (HTML généralement, mais pas nécessairement) que l'utilisateur interagit avec. Lorsque l'utilisateur fait une demande pour que la Vue ne peut pas gérer (les demandes pour plus de données ou une autre page), il transmet la demande au Contrôleur, qui charge en plus de données ou d'un autre point de Vue.En d'autres termes, le point de Vue détermine la façon dont les données vont être affichés. Le Contrôleur de cartes de demandes de Vues.
Il devient légèrement plus compliqué quand vous voulez avoir des complexes et /ou la modification des données affichées dans une vue. Afin de maintenir la la séparation des préoccupations que MVC nécessite CodeIgniter vous permet également de vous Modèles.
Modèles sont responsables de la partie la plus difficile de toute application web - gestion de flux de données. Ils contiennent des méthodes pour lire les données, écrire des données, et plus important encore, les méthodes pour assurer l'intégrité des données. En d'autres termes les Modèles:
Akelos a un bon graphisme fixant les composants de la MVC:
Requête - Réponse http://svn.akelos.org/trunk/docs/images/akelos_mvc.png
Cela étant dit, le plus simple (lire plus "facile", pas "la plus extensible") pour accomplir ce que vous voulez faire est:
$term = $this->input->post('search');
ici ... "recherche" est le nom de la forme, c'est exact?est le nom de la :
<input type="text" name="search">
.+1 pour la réponse détaillée
OriginalL'auteur Sean Vieira
Fichier de vue est inutile sans le contrôleur de charge et de l'afficher. Vous devez créer un contrôleur de recevoir le formulaire de données, les traiter, puis afficher le résultat du processus.
Vous pouvez utiliser un formulaire de l'aide pour définir la forme de balises ouvertes, aussi les balises de fermeture:
Sans l'aide du formulaire helper, vous pouvez toujours écrire de cette façon:
Puis ajouter le
search
méthode enform
contrôleur:Rappelez-vous que CI seulement vous aider avec le code de base de l'organisation et de fournir un utile bibliothèque et d'assistance. Mais vous avez encore le besoin d'écrire l'algorithme de la procédure dans votre site.
N'oubliez pas de lire les guide de l'utilisateur dans le téléchargé codeigniter paquet. Vous pouvez apprendre beaucoup de l'enfourne à partir de l'exemple. N'hésitez pas à demander des choses que vous ne savez pas ici, de nombreux états membres de stackoverflow va vous aider.
OriginalL'auteur Donny Kurnia
C'est la validation d'un formulaire et de le soumettre au contrôleur
Toute ma classe de contrôleur
Nous pouvons normal d'utilisation de formulaire html comme ceci.
OriginalL'auteur cgwCode
Essayez d'utiliser le codeigniter 'site_url' dans votre action pour s'assurer que vous pointez à la bonne place. L'action dans votre exemple, serait allé à la "recherche" contrôleur plutôt que la "forme" du contrôleur.
index est utilisé uniquement dans votre controller, quand rien d'autre n'est passé.. Donc dans le cas de mon exemple ci-dessus vous voulez quelque chose comme ceci:
OriginalL'auteur Shane
Nettuts a un bon tutoriel pour CodeIgniter pour le formulaire de Connexion. Suivez le screencast et il effacera vos questions.
http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-6-login/
OriginalL'auteur Yada
remplacer ce
<form action="search">
avec<?php echo form_open('form/search');?>
et autoload.php fichier ajouter
$autoload['helper'] = array('form');
et puis dossier de ne pas utiliser le fichier search.php il suffit d'ajouter votre search.php code dans votre fichier de Contrôleur
comme ici
OriginalL'auteur slav