IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formulaire, PHP, MySQL, MVC


Sujet :

PHP & Base de données

Vue hybride

Hiddenz Formulaire, PHP, MySQL, MVC 27/04/2014, 15h42
Nothus Je pense que tu as un... 27/04/2014, 19h47
Hiddenz Merci pour la réponse ! 27/04/2014, 21h20
Nothus Je comprends. Alors regarde... 27/04/2014, 21h28
Hiddenz Tout à fait, j'ai plusieurs... 27/04/2014, 21h38
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut Formulaire, PHP, MySQL, MVC
    Bonjour à tous les développeurs présent ici aujourd'hui, et tout d'abord merci à vous de prendre du temps pour aider le pauvre nul que je suis...

    dans l'objet de mon examen (je repasse mon BTS cette année), je suis sensé créer une application web pouvant gérer les stages d'étudiants.

    L'application à 3 pages, Une pour les coordonnées (Consultation et modification), une pour les entreprises, (Simple recherche), et une pour les stages, (insertion et recherche de stage)

    J'ai adopté une solution MVC.



    Mon principal problème (et je vais sûrement en avoir d'autres) pour le moment est pour la modification des coordonnées.

    J'arrive à afficher les coordonnées,mais pas à les modifier. pour les modifier j'ai choisi un formulaire avec méthode post.

    La vue juste ici
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <form method="post" action="" >
    	<table>
    		<tr>
    			<td>Nom :</td>
    			<td><input id="nom" type="text" value="" name="NOM"></td>
    		</tr>
    		<tr>
    			<td>Prénom :</td>
    			<td><input id="prenom" type="text" value="" name="PRENOM"></td>
    		</tr>
    		<tr>
    			<td>Téléphone :</td>
    			<td><input id="tel" type="text" value="" name="NUM_TEL"></td>
    		</tr>
    		<tr>
    			<td>Adresse e-mail :</td>
    			<td><input id="email" type="text" value="" name="ADRESSE_MAIL"></td>
    		</tr>
    	</table>
    	<input class="submit" type="submit" value="Modifier">
    </form>


    la partie model:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function envoyerCoordonnees($connexion, $login){
    	if (isset($_POST['NOM']) && isset($_POST['PRENOM']) && isset ($_POST['NUM_TEL'] ) && isset ($_POST['ADRESSE_MAIL'])){
    		$_POST['NOM']=$nomenvoiCoor;
    		$_POST['PRENOM']=$prenomenvoiCoor;
    		$_POST['NUM_TEL']=$numenvoiCoor;
    		$_POST['ADRESSE_MAIL']=$mailenvoiCoor;
    	}
    	$connexion = mysql_connect('localhost', 'root', 'root');
    	mysql_select_db('GestionStage', $connexion) or die("Impossible d'ouvrir la base");
    	$login = "$_SESSION[login]";
    	$sql= "UPDATE PERSONNE SET NOM ='$nomenvoiCoor', PRENOM = '$prenomenvoiCoor', NUM_TEL='$numenvoiCoor',ADRESSE_MAIL='$mailenvoiCoor WHERE NOM='$login'";}

    la partie controleur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    envoyerCoordonnees($connexion, $login);

    Tout d'abord, ma requête fonctionne (du moins sans les paramètres PHP) Mais je suis bloqué. quelle cible devrait-je ajouter à mon formulaire? Je bloque sur le traitement des données. Une fois que la modification fonctionne, j'aimerai pouvoir revenir sur cette page contact, et que les données s'actualise direct, (sachant que j'ai déjà la fonction d'affichage, un simple actualiser ferait l'affaire, mais j'ai tout oublié..)

    Je bloque vraiment sur la partie contrôleur, ou je sais que je devrais mettre beaucoup plus mais impossible de trouver ..

    Voilà je pense que c'est tout pour le moment.. Merci encore vraiment, merci d'avance pour votre aide, vous sauveriez un petit étudiant qui aimerai s'en sortir.. !!

  2. #2
    Membre Expert
    Avatar de Nothus
    Homme Profil pro
    aucun
    Inscrit en
    Juillet 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : aucun
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 200
    Billets dans le blog
    27
    Par défaut
    Je pense que tu as un problème de méthode. Tes pages peuvent être résumées en une seule, qui fait appel, en fonction de paramètres (voir $_REQUEST), à différentes classes qui permettent de faire ce que veut l'utilisateur.

    Une seule page à cette avantage que tu n'as pas de "retour" à faire : tu affiches le résultat de ta requête et éventuellement un autre formulaire.

    Tu as aussi la possibilité de mettre dans une variable, ce qui est pratique pour la "réutilisation" d'un formulaire. Voici un exemple dont tu peux t'inspirer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $MonFormulaire = function ($Var1='',$Var2='') {
    return ' 
    <form action="./" method="post"> 
    <input type="text" name="var1" value="'.$Var1.'" /> 
    <input type="text" name="var2" value="'.$Var2.'" /> 
    <input type="submit" value="Envoyer" /> 
    </form> 
    ';
    }; 
     
    //formulaire rempli avec, par exemple, le contenu de ta bdd 
    echo $MonFormulaire('test','coucou'); 
     
    // formulaire vierge 
    echo $MonFormulaire();
    Enfin n'oublie pas jeune padawan, que tu NE PEUX PAS contrôler ta page avec PHP : tu la génères, tu l'envoies, pas plus. Pour "actualiser" la page envoyée, il faut passer forcément par un langage client (JS pour ne pas le nommer). Le php ne peut pas "actualisé" une page envoyée (je vais vite, car avec les headers, il est en réalité possible de faire des choses plus avancées, mais passons).

    Voilà ! J'espère t'avoir un peu aidé, bon courage,

    Merde pour ton BTS,

    Julien.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut Merci pour la réponse !
    Bonsoir Nothus. Tout d'abord merci de ton attention et de ta réponse, ça fait plaisir à voir que des gens se dévouent à aider leur prochains!

    ceci dit, j'ai commis une faute en disant que j'ai choisi le modèle MVC. Il m'est imposé (dans les compétences du BTS). Je suis donc plus ou moins obligé de passer par un modèle, un contrôleur et une vue. (Je ne peux pas faire du tout-en-un même si ça m'aiderait bien !! )

    Pour l'actualisation, Je pense en fait que ça ne sois pas nécessaire, puis que j'ai remarqué que peu importe quand j’envoie mes données (enfin même pour de faux) Je reviens toujours sur ma pages des coordonnées. Il me suffirait donc que l'envoi de ces variables dans la base de données marche pour les afficher.

    Merci des conseils en tout cas, fort utile et précieux, je vais jeter un oeil sur la $_REQUEST ça m'à l'air sympa.

  4. #4
    Membre Expert
    Avatar de Nothus
    Homme Profil pro
    aucun
    Inscrit en
    Juillet 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : aucun
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 200
    Billets dans le blog
    27
    Par défaut
    Je comprends. Alors regarde aussi du côté de Require / Include, qui te permet - en somme - de faire appel à du contenu partagé.

    Exemple :

    Sur le fichier 1, j'ai la classe ou fonction "truc". Sur le fichier 2, j'ai besoin de truc. Du coup je faire include("./fichier 1"); et j'accède à tout ce qu'il y a dans fichier 1 dans fichier 2.

    Cela te permettra de ne pas multiplier, par exemple, le même code pour ta connexion à la base de données.

    Cela te permet aussi de garder des pages indépendantes (MVC oblige), mais avec un "tronc" commun, pour gérer les types de données.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut
    Tout à fait, j'ai plusieurs include : celui du modèle dans celui du contrôleur, et celui du contrôleur dans celui de la vue. tout est indépendant en soit le truc est assez bien établi.

    Code ctrlCoordonnees.inc.php : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once("./modele/modele.inc.php");

    Code vuecoordonnees.inc.php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include ctrlCoordonnees.inc.php; ?>


    Sauf que je ne sais comment rediriger ma requête pour que tout se fasse d'un seul coup de baguette. concrètement, il me manque la cible du formulaire. Mais je ne peux pas mettre le contrôleur comme cible, de toute façon ça m'afficherais une page blanche. dans l'idéal, faudrait que je puisse rester sur la même page tout en envoyant ces données.

    Je parait bête mais peut être que poser la question un peu différemment peut aider à me faire comprendre.. (Ah ces langages..)

  6. #6
    Membre Expert
    Avatar de Nothus
    Homme Profil pro
    aucun
    Inscrit en
    Juillet 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : aucun
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 200
    Billets dans le blog
    27
    Par défaut
    Hum, mais alors cible la page d'envoi comme réceptionneur :

    - en bidouillant du côté de $_SERVER["REQUEST_URI"];

    - ou simplement comme celui : <form action="" method="POST"> (laisser le champ "action" vide fait renvoyer le formulaire sur la même page).

    Je comprends pas très bien pourquoi une page devrait forcément te renvoyer aucun élément ? Tu peux m'expliquer plus en détails ?

Discussions similaires

  1. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  2. [MySQL] Probléme de apostrophe a mettre en formulaire php/mysql
    Par mecmec dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/06/2007, 20h42
  3. [MySQL] Formulaire PHP --> MySQL
    Par Badaboumpanpan dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 23/06/2006, 17h19
  4. Formulaire PHP-MySQL
    Par fara morgana dans le forum Langage
    Réponses: 11
    Dernier message: 09/05/2006, 15h46
  5. [MySQL] Bug Formulaire PHP-MySQL
    Par Davboc dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 01/03/2006, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo