Recyperer Et Inserer Les Données D'un Formaulaire Dans Une Table Dune Base De Donnée
#1
Posted 21 October 2012 - 10:13 AM
es-que vous pouvez me dir comment je doit proceder pour recuperer les information envoyer par le formulaire et les inserer dans la table? decrivez moi impe les etapes merciiiii
#2
Posted 21 October 2012 - 11:45 AM
L'idée générale est de vérifier si le tableau $_
- Si oui, le formulaire a déjà été rempli. On peut donc valider la saisie et sauvegarder le modèle.
- Sinon, on affiche la vue contenant le formulaire.
Cette approche est déjà implementée dans l'action Create automatiquement générée par Gii.
#3
Posted 21 October 2012 - 12:39 PM
pour la question de gii je l'ai juste utiliser pour les models creation j'ai pas envi d'utiliser la gestion du crud que yii propose,
pour la verification c'est ok et pour l'enregistrement des _$POST['item'] sa se passe ou je fait le traitement au niveau du controller la deuxiem etapes je sais pas ou la faire et comment mi prendre pour dir que voila tu met le _$POST dans la table inscription (insert into table en sql) vous voyez impe se que je veut dire
#4
Posted 21 October 2012 - 01:04 PM
public function actionCreate()
{
$model = new NomDuModele;
if (isset($_POST['NomDuModele'])) {
$model->attributes = $_POST['NomDuModele'];
if ($model->save()) {
/* voilà c'est sauvegardé */
}
} else {
/* affichage de la vue contenant le formulaire */
}
}
#5
Posted 21 October 2012 - 01:07 PM
#7
Posted 21 October 2012 - 01:26 PM
le code de sauvegarde que tu m'as donnée je linsert dans le conrolleer pas dans le model
NomDuModel:c'est le model que j'ai crée pour la table dans la quelle je veux sauvegarder
#8
Posted 21 October 2012 - 01:41 PM
Sinon l'excellente série que Larry Ullman avait consacrée à Yii a aussi été traduite en français : http://www.memorando...-framework-yii/ elle est vraiment utile pour démarrer avec Yii
#9
Posted 21 October 2012 - 01:46 PM
#10
Posted 21 October 2012 - 01:58 PM
<div id="sub">
<span class="txt">Champs de saisie obligatoires</span>
<span class="picto"></span>
<a href="#">S'inscrir à cette formation</a>
</div>
je doit envoyer le pste dans href c'est sa
#11
Posted 21 October 2012 - 02:32 PM
Si tu veux un conseil : démarre par le CRUD généré par Gii. Tu pourras après changer ce que tu veux.
#12
Posted 21 October 2012 - 02:38 PM
#13
Posted 21 October 2012 - 03:12 PM
#14
Posted 21 October 2012 - 03:19 PM
#15
Posted 21 October 2012 - 03:29 PM
#16
Posted 21 October 2012 - 03:41 PM
public function actionPreInscription($id)
{
//elmacirfinal/protected/views/formaion/preinscription.php
$this->idStyle="id='contenu'";
$form=Formation::model()->findByPk($id);
$date=DateFormation::model()->findByPk($id);
$this->render('preinscription',array('form'=>$form,'date'=>$date));
$model = new Inscription;
if (isset($_POST['Inscription'])) {
$model->attributes = $_POST['Inscription'];
if ($model->save()) {
/* voilà c'est sauvegardé */
}
} else {
/* affichage de la vue contenant le formulaire */
//$this->render('preinscription',array('form'=>$form,'date'=>$date));
}la vue
<div id="core" class="span-15"> <div id="inscription"> <h3 class="heading"><span class="border"></span>Pré-inscription à nos formations</h3> <p>Si vous souhaitez participer à l'atelier, veuillez remplir la présente fiche de participation.Attention ! Le nombre d'inscrits étant limité, nous vous prions de bien vouloir confirmer vos inscriptions dans les meilleurs délais possibles.</p> <div id="top_inscription"> <h3>Personne procédant à l'inscription</h3> <ul> <li><span class="txt">Nom :</span><input type="text"/><span class="picto"></span></li> <li><span class="txt">Prénom :</span><input type="text"/><span class="picto"></span></li> <li><span class="txt">Fonction :</span><input type="text"/></li> <li><span class="txt">E-mail :</span><input type="text"/></li> </ul> <div class="clear"></div> </div> <div id="info_inscription"> <h3>Information Formation</h3> <ul> <li> <span class="txt">Formation :</span> <select> <option><?php echo $form->nom; ?></option> </select> <span class="picto"></span> </li> <li> <span class="txt">Date saision :</span> <select> <option><?php echo $date->date_debut; ?> Au <?php echo $date->date_fin; ?> </option> </select> <span class="picto"></span> </li> <li><span class="txt">Date saision:</span><input type="text"/><span class="picto"></span></li> <li><span class="txt">Numbres :</span><input type="text"/><span class="picto"></span></li> <li><span class="txt">Société :</span><input type="text"/></li> <li><span class="txt">Adresse :</span><input type="text"/><span class="picto"></span></li> <li><span class="txt">Code postal :</span><input type="text"/><span class="picto"></span></li> <li><span class="txt">Ville :</span><input type="text"/></li> <li><span class="txt">Pays :</span><input type="text"/></li> <li><span class="txt">Téléphone :</span><input type="text"/></li> <li><span class="txt">Fax :</span><input type="text"/></li> </ul> <div class="clear"></div> </div> <div id="sub"> <span class="txt">Champs de saisie obligatoires</span><span class="picto"></span> <a href="#">S'inscrir à cette formation</a> </div> </div> </div>
#17
Posted 21 October 2012 - 04:24 PM
1. Dans ton controlleur, tu enleves le premier render et tu gardes le deuxieme
2. Dans ta vue, il y a du travail...
- D'abord il faut englober l'ensemble entre deux tags <form> et </form>.
- ensuite chaque input et autre champ doit avoir un attribut name sinon il ne sera pas present dans le post
- pour preserver le fonctionnement du controlleur, les attributs name doivent etre du type "Inscription[nomDuChampTelQueDansLaBDD]"
- ensuite chaque input et autre champ doit avoir un attribut id sinon il ne sera pas valide par le modele
- pour preserver le fonctionnement du modele, les attributs id doivent etre du type "Inscription_nomDuChampTelQueDansLaBDD"
- maintenant pour afficher les erreurs de validation pour chaque champ, il faut egalement ajouter un element specifique apres chaque champ
- et tout ca c'est reinventer la roue car tu feras certainement des erreurs et tu perdras du temps.
Tu peux m'expliquer pourquoi tu ne veux pas utiliser Gii?
#18
Posted 21 October 2012 - 04:34 PM
#19
Posted 21 October 2012 - 04:46 PM
En tout cas quand tu apporteras les changements expliques dans mon post precedent, n'oublie pas d'ajouter un bouton submit a ton formulaire.
#20
Posted 21 October 2012 - 06:27 PM
controller Preinscription
public function actionPreInscription($id)
{
//elmacirfinal/protected/views/formaion/preinscription.php
$this->idStyle="id='contenu'";
$form=Formation::model()->findByPk($id);
$date=DateFormation::model()->findByPk($id);
$model = new Inscription;
if (isset($_POST['Inscription'])) {
$model->attributes = $_POST['inscription'];
if ($model->save()) {
/* voilà c'est sauvegardé */
$this-> getErrors();
}
} else {
/* affichage de la vue contenant le formulaire */
$this->render('preinscription',array('form'=>$form,'date'=>$date));
vue
<form name="formulaire"> <div id="core" class="span-15"> <div id="inscription"> <h3 class="heading"><span class="border"></span>Pré-inscription à nos formations</h3> <p>Si vous souhaitez participer à l'atelier, veuillez remplir la présente fiche de participation.Attention ! Le nombre d'inscrits étant limité, nous vous prions de bien vouloir confirmer vos inscriptions dans les meilleurs délais possibles.</p> <div id="top_inscription"> <h3>Personne procédant à l'inscription</h3> <ul> <li><span class="txt">Nom :</span><input type="text" name="Inscription[nom]" id="1"/><span class="picto"></span></li> <li><span class="txt">Prénom :</span><input type="text" name="Inscription[prenom]" id="2"/><span class="picto"></span></li> <li><span class="txt">Fonction :</span><input type="text" name="Inscription[fonction]" id="3"/></li> <li><span class="txt">E-mail :</span><input type="text" name="Inscription[mail]" id="4"/></li> </ul> <div class="clear"></div> </div> <div id="info_inscription"> <h3>Information Formation</h3> <ul> <li> <span class="txt">Formation :</span> <select> <option ><?php echo $form->nom; ?></option> </select> <span class="picto"></span> </li> <li> <span class="txt">Date saision :</span> <select name="date" id="5"> <option ><?php echo $date->date_debut; ?> Au <?php echo $date->date_fin; ?> </option> </select> <span class="picto"></span> </li> <li><span class="txt">Date saision:</span><input id="6" type="text" name="Inscription[date_session]"/><span class="picto"></span></li> <li><span class="txt">Numbres :</span><input id="7" type="text" name="Inscription[nombre]"/><span class="picto"></span></li> <li><span class="txt">Société :</span><input id="8" type="text" name="Inscription[societe]"/></li> <li><span class="txt">Adresse :</span><input id="9" type="text" name="Inscription[adresse]"/><span class="picto"></span></li> <li><span class="txt">Code postal :</span><input id="10" type="text" name="code_postal"/><span class="picto"></span></li> <li><span class="txt">Ville :</span><input id="11" type="text" name="Inscription['ville']"/></li> <li><span class="txt">Pays :</span><input id="12" type="text" name="Inscription[pays]"/></li> <li><span class="txt">Téléphone :</span><input id="13" type="text" name="Inscription[phone]"/></li> <li><span class="txt">Fax :</span><input id="14" type="text" name="Inscription[fax]"/></li> </ul> <div class="clear"></div> </div> </form> <div id="sub"> <span class="txt">Champs de saisie obligatoires</span><span class="picto"></span> <button type="submit">S'inscrir à cette formation</button> </div> </div> </div>
l'url
avant de clické submit ::
http://localhost/elmacirfinal/index.php?r=formation/preinscription&id=1#
apré avoir cliké submit:::
http://localhost/elmacirfinal/index.php?Inscription[nom]=dongii&Inscription[prenom]=druming&Inscription[fonction]=drumer&Inscription[mail]=drumerzone&date=2012-10-09+Au+2012-10-11&Inscription[date_session]=14&Inscription[nombre]=12&Inscription[societe]=tam&Inscription[adresse]=new+york&code_postal=16009&Inscription[ville]=lllll&Inscription[pays]=lapslam&Inscription[phone]=123&Inscription[fax]=1234#

Help












