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

Langage PHP Discussion :

Difficultés d'analyse formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Par défaut Difficultés d'analyse formulaire
    Bonjour,
    Je suis novice dans le développement Php et j'envisage de modifier quelques options d'un Groupware libre. A la validation d'un formulaire, je souhaiterais que la valeur d'un champ soit remplacée par le résultat d'une requête que j'exécute.
    Cette requête doit en outre prendre comme critère une sélection d'un menu déroulant de formulaire.

    J'ai bien identifié la ligne de code relative au champ dont je souhaite forcer la valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $corps_sql = " titre=".db_insert($_POST["titre"]).", description=".db_insert($_POST["description"]
    L'ennui, c'est que je ne comprends pas à quoi ["titre"] & ["description"] correspondent. et je préférerais les remplacer par les valeurs retournées par ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT `gt_aleatoire_pp`.`titre`, `gt_aleatoire_pp`.`description`
    FROM `gt_aleatoire_pp`, `gt_agenda_categorie` 
    where `gt_aleatoire_pp`.`id_categorie`=`gt_agenda_categorie`.`id_categorie`
    order by rand() limit 1
    Auriez-vous une idée de la façon dont il faudrait que je procède ?

    Merci de tout coeur pour votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Par défaut
    Bonjour,

    J'ai bien déclaré ma requete dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $infos_tit = db_ligne("SELECT titre, desc FROM gt_aleatoire_pp WHERE id_categorie='".$evt_tmp["id_categorie"]." ORDER BY RAND() LIMIT 1' ");
    Puis, j'ai cherché à l'insérer :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	echo "<fieldset>"; 
    echo $trad["divers"]["titre"]." &nbsp;<input type=\"text\" name=\"titre\" id=\"titre\" value=\"".$infos_tit["titre"]."\" style=\"width:65%\" /> &nbsp; &nbsp; ";
    echo "<span onClick=\"afficher_dynamic('block_description');\" class=\"lien\">".$trad["divers"]["description"]." <img src=\"".path_templates."divers/derouler.png\" /></span>";
    echo "<span id=\"block_description\"><br /><br /><textarea name=\"description\" id=\"description\" style=\"width:100%;height:180px;\">".$evt_tmp["description"]."</textarea></span>";
    if($evt_tmp["description"]=="" and $_SESSION["user"]["id_utilisateur"]>0)	echo "<script type=\"text/javascript\">  onLoad = window.setTimeout(\"afficher_dynamic('block_description')\",1000);  </script>";
    	echo "</fieldset>";

    Mais le champ 'titre' reste vide. :/

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    ça veut dire que tu t'attends à recevoir un formulaire expédié par la methode http POST dont un des champs a pour nom (attribut name) "titre" et dont tu veux utiliser la valeur.

    ---
    la coloration ne s'est pas activée dans ton code. Remplace [code] par [code=php] pour forcer l'affichage.
    ---

    ENLEVE LES @ devant les variables pour debugger.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Par défaut
    Bonjour Gene69,

    Merci pour votre réponse.
    (J'ai procédé à la modification à propos de la coloration syntaxique, sans résultat).

    ça veut dire que tu t'attends à recevoir un formulaire expédié par la methode http POST dont un des champs a pour nom (attribut name) "titre" et dont tu veux utiliser la valeur.
    Oui : je souhaite récupérer toutes les informations saisies dans le formulaire à l'exception du titre et de la description qui devront être issus du résultat de ma requete.
    Mon code semble deonc ne pas être bon.
    Je jete un oeil dans vos tutoriels pour savoir comment mêler des informations provenant d'une variable avec celle provenant d'un formulaire.

    Merci bien de votre éclairage.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Par défaut
    Voilà le code tel que je l'ai modifié :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	$reqphil=("SELECT titre, desc FROM gt_aleatoire_pp WHERE id_categorie='".$_POST["id_categorie"]." ORDER BY RAND() LIMIT 1' ");
    	$resreqphil=mysql_query($reqphil) or die("Erreur dans l'extraction des informations" );
     
    		$corps_sql = " titre=".db_insert($resreqphil).", description=".db_insert($_POST["description"],"editeur").", date_debut='".$date_debut."', date_fin='".$date_fin."', id_categorie=".db_ins...;

    En somme, j'essaie d'exécuter une requête en prenant comme critère ce qui vient d'être saisi dans le formulaire (le fameux 'id_categorie'). Je pense que le problème vient de là, puisque lorsque j'exécute le script, j'obtiens le message d'erreur.

    Parce qu'une fois exécutée, la variable $corps_sql devrait comporter ce résultat.

    Qu'en pensez-vous ?

  6. #6
    Membre expérimenté Avatar de diallomad
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 164
    Par défaut
    Citation Envoyé par ValPhi Voir le message
    Voilà le code tel que je l'ai modifié :

    $reqphil=("SELECT titre, desc FROM gt_aleatoire_pp WHERE id_categorie='".$_POST["id_categorie"]." ORDER BY RAND() LIMIT 1' ");
    Je pense que le problème se situe au niveau des guillemets ("). Essaie ce code
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $reqphil=("SELECT titre, desc FROM gt_aleatoire_pp WHERE id_categorie='".$_POST['id_categorie']."' ORDER BY RAND() LIMIT 1 ");
    La 2e est incorrecte également, je ne peut pas faire de suggestion sans la voir au complet.
    Mais tu peux commencer par changer les guillemets des $_POST[" "] par $_POST[' '].
    Le 1er par exemple:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_POST['description']  //*Au lieu de $_POST["description"]
    PS: N'oublie pas de faire un petit traitement des données provenant du formulaire avant de les utiliser dans la requête.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Difficulté à réaliser un formulaire
    Par herve5959 dans le forum Access
    Réponses: 2
    Dernier message: 03/01/2015, 20h47
  2. [AC-2000] Difficulté pour mon formulaire ACCESS 2000 !
    Par Sandra7 dans le forum IHM
    Réponses: 14
    Dernier message: 19/03/2014, 19h06
  3. Difficulté à fermer un formulaire
    Par Jhofman dans le forum IHM
    Réponses: 2
    Dernier message: 01/06/2012, 15h30
  4. Réponses: 3
    Dernier message: 16/05/2006, 10h23
  5. Réponses: 1
    Dernier message: 27/08/2005, 11h01

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