Contact Form : comment pourrais-je afficher les messages envoyés

Fermé
MicSoldier Messages postés 31 Date d'inscription lundi 9 août 2010 Statut Membre Dernière intervention 12 mai 2017 - 10 mai 2017 à 00:59
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 12 mai 2017 à 02:11
Bonjour,

je voudrais savoir comment pourrais-je afficher les messages envoyés par les utilisateurs dans une page (vosmessages.php) par exemple ?
j'ai utilisé l'echo suivant, mais je veux qu'a chaque fois que je clique par exemple sur une ligne une page (modal) m'affichera le message envoyé par un utilisateur.

<?php
while($res = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>".$res['nom']."</td>";
echo "<td>".$res['email']."</td>";
echo "<td>".$res['message']."</td>";
echo "<td><a href=\"form/delete.php?id=$res[id]\" onClick=\"return confirm('Confirmer la supression.')\">Delete</a></td>";
}
?>


Voilà, d'une autre façon comment afficher une ligne d'une table "sql" dans notre page (modal) en cliquant sur la ligne ou un button html/php ?
A voir également:

3 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
10 mai 2017 à 09:42
Bonjour,

Je ne comprends pas ce que tu souhaites.

Tu parles de messages envoyer par un utilisateur, d'accord.

Et après tu montres un code qui génère des lignes d'un tableau à partir d'une base de données.

Qu'elle est le rapport entre les deux ?
0
MicSoldier Messages postés 31 Date d'inscription lundi 9 août 2010 Statut Membre Dernière intervention 12 mai 2017 3
Modifié le 11 mai 2017 à 12:07
D'accord voilà en détails ce que je veux faire :

- le message est envoyé via un form contact sur le site
- ce message alors conservé dans une table de ma base de données
- j'ai mis le code qui génère le tableau (contact_form) dans une page (comme une boite de réception)
- alors, je bloque à ce niveau ! je veux bien savoir comment je pourrais cliquer sur une ligne de ce tableau générer, est une page ou un dialogue box (modal) s'affichera avec le contenu du ligne (nom, email, message)

voilà ! merci d'avance
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
11 mai 2017 à 14:06
Bonjour,

alors, je bloque à ce niveau ! je veux bien savoir comment je pourrais cliquer sur une ligne de ce tableau générer, est une page ou un dialogue box (modal) s'affichera avec le contenu du ligne (nom, email, message)


Plusieurs possibilités ...
Si une autre page .. dans ce cas tu peux utiliser la même chose que pour ton "delete" .. à savoir un lien dans lequel tu mets l'id de l'élément à ouvrir.
Ou un javascript qui fera un window.open (toujours avec l'id de l'élément à ouvrir dans le lien )

Si pour une modal ... Tu peux te faire un AJAX qui va récupérer les données et les afficher dedans.


0
MicSoldier Messages postés 31 Date d'inscription lundi 9 août 2010 Statut Membre Dernière intervention 12 mai 2017 3
Modifié le 11 mai 2017 à 15:22
Oui mais comment ? c'est quoi le code que je dois mettre pour m'afficher la ligne entière (une ligne seulement) comme le format suivant dans une modal ou tout simeplement un dialogue box comme celui qui s'affiche pour delete :

Nom : xxxx
email : xxxx@xxxxx
message: xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx

c'est le code pour "delete"

echo "<td><a href=\"form/delete.php?id=$res[id]\" onClick=\"return confirm('Confirmer la supression.')\">Delete</a></td>";


pour la page "delete.php" :
<?php session_start(); ?>

<?php
if(!isset($_SESSION['id_admin'])) {
header('Location: ../../admin/login.php');
}
?>

<?php
//including the database connection file
include("../../config/dbconnect.php");

//getting id of the data from url
$id = $_GET['id'];

//deleting the row from table
$result=mysqli_query($connect, "DELETE FROM contact_form WHERE id=$id");

//redirecting to the display page (view.php in our case)
header("Location:../home.php");
?>



Merci d'avance
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > MicSoldier Messages postés 31 Date d'inscription lundi 9 août 2010 Statut Membre Dernière intervention 12 mai 2017
11 mai 2017 à 16:45
déjà .. ne confond pas les dialogbox (alert, confirm ..) avec des modal (même si c'est presque identique... elles ne sont pas "personnalisables" ).
Une modal c'est ça par exemple :
https://jqueryui.com/dialog/

ensuite, pour la code côté php .. tu fais pareil que pour le delete .. sauf que la requête sera un SELECT WHERE

Et pour finir .. un exemple d'ajax : https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2
(à adapter pour afficher une modal au lieu de remplir une liste déroulante .... mais le principe reste le même )
0
MicSoldier Messages postés 31 Date d'inscription lundi 9 août 2010 Statut Membre Dernière intervention 12 mai 2017 3 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
12 mai 2017 à 00:49
Je suis vraiment nul :/
S'il vous plait je sais que c'est facile pour, si vous voulez bien me procurer le code pour un tableau avec lire / supprimer pour chaque id.
Tableau "contact_form": id, nom, email, message.
S'il vous plait merci d'avance
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
12 mai 2017 à 02:11
Normalement .. je ne fourni pas de code tout cuit ..(je ne suis pas là pour ça .... ). mais bon....

NB : Codé de tête sans avoir testé ...

Le code php à mettre dans un fichier : messages.ajx.php
<?php 
//fichier messages.ajx.php
session_start(); 
if(!isset($_SESSION['id_admin'])) {
    header('Location: ../../admin/login.php');
    exit();
}

//including the database connection file
require_once("../../config/dbconnect.php");
 
//récupérer PROPREMENT les variables AVANT de les utiliser
$id = !empty($_POST['id']) ? $_POST['id'] : NULL;

$result=array(); // tableau de sorti.
 
if($id){ 
  $sql = "SELECT * FROM contact_form WHERE id='$id'";
  if(!$result=mysqli_query($connect, $sql)){
    echo("Error : " . mysqli_error($connect));
  }
   
  //on créé un array avec toutes les données issues de la requête 
  while($row = $result->fetch_array(MYSQLI_ASSOC)){
    $result[] = $row;
    
  }
}else{
  $result['error'] = "No id !";
}

//on retourne l'array en json
echo json_encode($result);
?>


côté html tu dois créer une div "modal"
<div id="dialog-form" style="display: none"></div>

Tu dois également, dans ton affichage actuel, ajouter un lien qui permette d'ouvrir la fenêtre
par exemple :
echo "<td><button class="open_dialog" data-id='".$id."'>Ouvrir</button></td>";


Coté javascript

 $(function () {
    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        title: "Message",
        buttons: {
            Close: function () {
                $(this).dialog('close');
            }
        }
    });
    $(".open_dialog").click(function () {
        var urlAjx = "messages.ajx.php";   // Fichier ajax PHP
        var id = $(this).data('id');
        $.ajax({
            type: "POST",
            url: urlAjx,
            data: {id:id},
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) {
                var contentDialog;
                contentDialog += "<span>"+r.id+"</span>"; 
                contentDialog += "<span>"+r.nom+"</span>"; 
                contentDialog += "<span>"+r.email+"</span>"; 
                contentDialog += "<span>"+r.message+"</span>"; 
                $("#dialog").html(contentDialog);
                $("#dialog").dialog("open");
            }
        });
    });
});


bien entendu .. tu auras suivi les indications données dans mes liens précédents .. et tu aura chargé jquery et jquery-ui.

Par exemple :
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

(le mieux étant de télécharger les scripts directement dans ton site au lieu de les appeller depuis les liens web ...)
Jquery est récupérable ici :
https://code.jquery.com/jquery-3.2.1.min.js
(tu n'as qu'à faire : enregistrer sous depuis le menu de ton navigateur ..)

et jquery ui :
https://jqueryui.com/download/
(tu laisses tout par défaut et tu cliques sur le lien en bas de page)


Pour personnaliser la modal... tu peux regarder la doc ici :
https://api.jqueryui.com/dialog/#option-modal


NB : En cas de souci dans le code .... pense à regarder dans le debogueur de ton navigateur (dans la "console") voir si il n'y aurait pas des messages d'erreur...
NB² : Je te conseille d'utiliser FireFox (et son plugin firebug) pour déboguer ... sinon pense, pour Chrome, à télécharger le débogueur ajax.
https://chrome.google.com/webstore/detail/ajax-debugger/lgfefckpdealogpcfjdhinecfbcgedam

0