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 :

affichage direct via le submit


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de zool.bzh
    Homme Profil pro
    peintre industriel
    Inscrit en
    Octobre 2023
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : peintre industriel
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2023
    Messages : 76
    Points : 55
    Points
    55
    Par défaut affichage direct via le submit
    Bonjour a tous
    Je voudrais que le message du formulaire apparaisse simultanément lors du post.
    Le message dois être au dessus du formulaire et c'est là que ça cloche.
    La requête se passe bien en bas du formulaire mais pas en haut.
    voici mon exemple : oOo
    Le code :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    <html>
        <head>
     
          <title> Le 9eme Cercle message</title>
    <link href="csstyle.css" rel="stylesheet" type="text/css" />
     
    </head>
      <body bgcolor ="#000000">
    <?php
     
    //les données de la table que je voudrais en affichage direct
     
    $pdo = new PDO('mysql:host=ipdusite;dbname=basededonnees', 'nomdelabase', '****');
    $sqlcom = 'SELECT pseudo, mess_com FROM messtable ORDER BY id_mess DESC';
    $valc = $pdo->prepare($sqlcom);
    $valc -> execute();
    $valcoms = $valc-> fetchAll();
    foreach ($valcoms as $valcom) {
                               ?>
    		   <span class="gris6txt"><</span>
    		   <span class="rouge"><?php echo $valcom['pseudo']; ?></span>
    		   <span class="gris6txt">>-</span>
    		   <span class="gris9txt"><?php echo $valcom['mess_com']; ?></span><br>
     
    <?php }
    ?>
     
    <img src="le9eme.png" width="571" height="315"/><br>
     
    <?php
     
    // la methode post pour enregistrer dans la table
     
    if (isset($_POST['subpost'])){
            if ($_POST['pseudo']!="" && $_POST['message']!="") {
            
                    $message = $_POST['message'];
                $pseudo = $_POST['pseudo'];
               
                        $req = $pdo -> prepare("INSERT INTO messtable (pseudo, mess_com) VALUES (:pseudo, :mess_com)");
                $req -> execute(array(
                    ":pseudo" =>  $pseudo,
                                ":mess_com" =>$message,
                         ));
            }
        $pseudo = "";
        $message= "";    
        $_POST['pseudo']="";
        $_POST['message']="";
     
        }
            
        // pour les erreurs de verifications
            
           $look="";
        if (isset($_POST['verif'])) {
     
            $pseudo = $_POST['pseudo'];
            $message = $_POST['message'];
     
            if ($pseudo == ""){
                $look = "ton pseudo !"; 
                }         
            if ($message == ""){
                $look = "ton message !";
            }
            if ($pseudo=="" && $message==""){
                    $look = "un petit effort !!";
                }  
        }
     
        if (isset($_POST['verif'])) {
            echo "<span class='gris6txt'><</span><span class='rouge'>$pseudo</span><span class='gris6txt'>>-</span><span class='gris9txt'>$message</span>";
            }
     ?><br> <span class="bleu">
        <?php echo $look; ?>
        </span><br>
     
    	// le formulaire
     
    	<form action="index.php" method="post">
        <?php
         if (isset($_POST['verif']) || isset($_POST['subpost'])) {  
        $pseudo = $_POST['pseudo'];
        $message = $_POST['message'];
        echo '<input style="width: 100px"value="'.$pseudo.'" name="pseudo" type="text" />';
        echo '<input style="width: 350px" value="'.$message.'" name="message" type="text" />';
        } else {
        echo '<input style="width: 100px" placeholder="pseudo" name="pseudo" type="text" />';
        echo '<input style="width: 350px" placeholder="message" name="message" type="text" />';
        }
    $pseudo="";
    $message="";
    $_POST['pseudo']="";
    $_POST['message']=""; 
    ?> 
    <button name="verif" type="submit">vérifier</button>
    <button name="subpost" type="submit">poster</button><br>
     
    <?php
     
    // les données de la table direct
     
    $sqlcom = 'SELECT pseudo, mess_com FROM messtable ORDER BY id_mess DESC';
    $valc = $pdo->prepare($sqlcom);
    $valc -> execute();
    $valcoms = $valc-> fetchAll();
    foreach ($valcoms as $valcom) {
                               ?>
    		   <span class="gris6txt"><</span>
    		   <span class="rouge"><?php echo $valcom['pseudo']; ?></span>
    		   <span class="gris6txt">>-</span>
    		   <span class="gris9txt"><?php echo $valcom['mess_com']; ?></span><br>
     
    <?php }
    ?></form>
    </div>
    </body>
    </html>
    Quelqu'un voit-il comment faire ??

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 242
    Points : 8 521
    Points
    8 521
    Billets dans le blog
    17
    Par défaut
    Ta page est simple mais ton script est franchement imbittable, au final tu t'y perds et perso je n'y comprends rien

    Il faut procéder avec un minimum de méthode et... indenter correctement ton code.

    J'ai simplifié en :
    1. Messages d'erreur en haut de page (je crois que c'est ce que tu voulais)
    2. Formulaire
    3. Affichage des messages

    Code PHP : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
     
    // PARTIE 1 : LES TRAITEMENTS
     
    $pdo = new PDO('mysql:host=ipdusite;dbname=basededonnees', 'nomdelabase', '****');
     
    $errors = []; // Tableau des erreurs du formulaire
     
    // Traitement du formulaire si soumis
    if (isset($_POST['pseudo'], $_POST['message'])) {
        if ($_POST['pseudo'] === '') {
            $errors[] = 'Ton pseudo !';
        }
        if ($_POST['message'] === '') {
            $errors[] = 'Ton message !';
        }
        if (empty($errors)) { // Si pas d'erreurs, insertion en base
            $insert = $pdo->prepare('INSERT INTO messtable (pseudo, mess_com) VALUES (:pseudo, :mess_com)');
            $insert->execute([
                'pseudo' =>  $_POST['pseudo'],
                'mess_com' =>$_POST['message'],
            ]);
        }
    }
     
    // Récupère les messages
    $sql = 'SELECT pseudo, mess_com FROM messtable ORDER BY id_mess DESC';
    $messages = $pdo->query($sql)->fetchAll();
     
    // PARTIE 2 : LA VUE / L'AFFICHAGE
     
    ?>
    <html>
        <head>
            <link href="csstyle.css" rel="stylesheet" type="text/css" />
            <title>Le 9e Cercle message</title>
        </head>
        <body bgcolor="#000000">
     
            <img src="le9eme.png" width="571" height="315"/>
     
            <?php if (!empty($errors)): ?>
                <p>Erreurs : <span class="bleu"><?= implode(' / ', $errors) ?></span></p>
            <?php endif ?>
     
            <form action="index.php" method="post">
                <input type="text" name="pseudo" placeholder="pseudo" style="width: 100px" value="<?= htmlspecialchars($_POST['pseudo'] ?? '') ?>">
                <input type="text" name="message" placeholder="message" style="width: 350px" value="<?= htmlspecialchars($_POST['message'] ?? '') ?>">
                <button type="submit">poster</button>
            </form>
     
            <?php foreach ($messages as $message): ?>
                <span class="gris6txt">&lt;</span>
                <span class="rouge"><?php echo $message['pseudo']; ?></span>
                <span class="gris6txt">&gt;-</span>
                <span class="gris9txt"><?php echo $message['mess_com']; ?></span><br>
            <?php endforeach ?>
     
        </body>
    </html>
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre du Club Avatar de zool.bzh
    Homme Profil pro
    peintre industriel
    Inscrit en
    Octobre 2023
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : peintre industriel
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2023
    Messages : 76
    Points : 55
    Points
    55
    Par défaut
    Merci bien Sèb.
    Tu vas faire des bons, j'ai bodybuilder ton code, le voici, c'est exactement ce que je voulais : -> oOo
    Code php : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <?php
     
    // PARTIE 1 : LES TRAITEMENTS
     
    $pdo = new PDO('mysql:host=ipdusite;dbname=basededonnees', 'nomdelabase', '****');
     
    $errors = []; // Tableau des erreurs du formulaire
     
     $tem=0; //initialisation du temoin
    i
    f (isset($_POST['pseudo'], $_POST['message'])) {
        if ($_POST['pseudo'] === '') {
            $errors[] = 'Ton pseudo !';
        }
        if ($_POST['message'] === '') {
            $errors[] = 'Ton message !';
        }
     
     
    	if ((empty($errors) && isset($_POST['subpost']))) { // Si pas d'erreurs, insertion en base
            $insert = $pdo->prepare('INSERT INTO messtable (pseudo, mess_com) VALUES (:pseudo, :mess_com)');
            $insert->execute([
                'pseudo' =>  $_POST['pseudo'],
                'mess_com' =>$_POST['message'],
            ]); 
    		$tem=1; //temoin 1 pour reconnaitre l'INSERT
    		}
     
     
    // Récupère les messages
    $sql = 'SELECT pseudo, mess_com FROM messtable ORDER BY id_mess DESC';
    $messages = $pdo->query($sql)->fetchAll();
     
    // PARTIE 2 : LA VUE / L'AFFICHAGE
     
    ?>
    <html>
        <head>
            <link href="csstyle.css" rel="stylesheet" type="text/css" />
            <title>Le 9e Cercle message</title>
        </head>
        <body bgcolor="#000000">
     
            <?php foreach ($messages as $message): ?> // tous les post avec le dernier qui s'affiche dès le clique du 'subost'
                <span class="gris6txt">&lt;</span>    // ce pourquoi j'ai poster ce message
                <span class="rouge"><?php echo $message['pseudo']; ?></span>
                <span class="gris6txt">&gt;-</span>
                <span class="gris9txt"><?php echo $message['mess_com']; ?></span><br>
            <?php endforeach ?>
     
    	  <img src="le9eme.png" width="571" height="315"/>
     
    	 <?php   if (!empty($errors)){ ?>
             <br><span class="ocren"><?php echo implode(' ', $errors); ?></span>
     
    	  <?php }
    	     if (isset($_POST['verif'])): // le post verif pour teser le message
                $tem=2; ?>
                <br><span class='gris6txt'><</span>
    	        <span class='rouge'><?=$_POST['pseudo']?></span>
    	        <span class='gris6txt'>>-</span>
    	        <span class='gris9txt'><?=$_POST['message']?></span>
        	<?php endif ?>
          <form action="index.php" method="post">
              <?php
    		 if ($tem==0) {		// si rien est selectionné disposé le placeholder 
    		   echo '<input style="width: 100px" placeholder="pseudo" name="pseudo" type="text" />';
              echo '<input style="width: 350px" placeholder="message" name="message" type="text" />';
    		 } if (isset($_POST['verif'])) {  // le mode vérif avec les valeurs inscrite précédemment
              ?>
              <input style="width: 100px"value="<?php echo $_POST['pseudo']; ?>" name="pseudo" type="text" />'
              <input style="width: 350px" value="<?php echo $_POST['message']; ?>" name="message" type="text" />'
        <?php 
    		  }
    		else if ($tem==1) {    // temoin=1 apres validation du post, remetre les placeholder
    		  echo '<input style="width: 100px" placeholder="pseudo" name="pseudo" type="text" />';
              echo '<input style="width: 350px" placeholder="message" name="message" type="text" />';
    		}  
     
    	 ?>
    	<button name="verif" type="submit">vérifier</button>
        <button name="subpost" type="submit">poster</button><br>
     </form>
    </body>
    </html>
    Merci

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 242
    Points : 8 521
    Points
    8 521
    Billets dans le blog
    17
    Par défaut
    Heureux que ça te convienne, et dommage que tu ne suives pas mes conseils, le script est déjà incompréhensible
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

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

Discussions similaires

  1. affichage directe d'un champ BLOB dans une DG
    Par zaineb.z dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/04/2008, 14h03
  2. DHTML menu affichage remplit via php
    Par jaduta dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/12/2007, 20h44
  3. Réponses: 3
    Dernier message: 27/07/2007, 14h01
  4. [FF][XSLT][JS] Affichage xml via xsl sous Mozilla
    Par Eileen dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 26/04/2007, 12h13
  5. compiler directement via ld
    Par minirop dans le forum C
    Réponses: 14
    Dernier message: 09/04/2007, 21h02

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