Bonjour,
sur mon site COFISHING, dans le menu "membres", j'affiche la liste des membres sous forme de tableau. Dans la colonne de droite du tableau, une image (enveloppe blanche) permet d'ouvrir un formulaire d'envoi d'un message privé au membre en question lorsqu'on clique dessus.
Problème: lorsqu'on clique sur le bouton image "enveloppe", on quitte la fenêtre du tableau des membres pour ouvrir le formulaire de saisie du message privé. C'est très pénible pour l'utilisateur. J'aimerais qu'en cliquant sur l'enveloppe blanche, le formulaire de saisie du message privé s'ouvre en pop-up de façon à garder la liste des membres sous ce formulaire.
Je pense qu'il faut utiliser du JS ou Ajax, mais là c'est trop compliqué pour moi.
J'ai besoin de votre aide SVP.
Merci
Cordialement.
Alain.
Voici le code actuel pour l'affichage de la liste des membres:
Puis, le code du formulaire d'envoi du message privé :
Et enfin, le fichier formulaire_envoi_message.php :
Modifié par alain17 (15 Nov 2012 - 09:41)
sur mon site COFISHING, dans le menu "membres", j'affiche la liste des membres sous forme de tableau. Dans la colonne de droite du tableau, une image (enveloppe blanche) permet d'ouvrir un formulaire d'envoi d'un message privé au membre en question lorsqu'on clique dessus.
Problème: lorsqu'on clique sur le bouton image "enveloppe", on quitte la fenêtre du tableau des membres pour ouvrir le formulaire de saisie du message privé. C'est très pénible pour l'utilisateur. J'aimerais qu'en cliquant sur l'enveloppe blanche, le formulaire de saisie du message privé s'ouvre en pop-up de façon à garder la liste des membres sous ce formulaire.
Je pense qu'il faut utiliser du JS ou Ajax, mais là c'est trop compliqué pour moi.
J'ai besoin de votre aide SVP.
Merci
Cordialement.
Alain.
Voici le code actuel pour l'affichage de la liste des membres:
<?php
include_once 'modeles/membres.php';
$sql='SELECT membres.id, membres.nom_utilisateur, membres.adresse_email
FROM membres INNER JOIN annonces ON membres.id = annonces.membre
WHERE (((annonces.membre) Is Not Null))
GROUP BY membres.id, membres.nom_utilisateur, membres.adresse_email
ORDER BY membres.nom_utilisateur';
$pdo = PDO2::getInstance();
$requete=$pdo->prepare($sql);
$requete->execute();
include_once 'modeles/infos_membres.php';
?>
<section class="grande_section">
<table>
<tr>
<th style="width:100px;"><?php echo _PSEUDO_;?></th>
<th style="width:60px;"><?php echo _AVATAR_;?></th>
<th style="width:65px;"><?php echo _PROFESSIONNEL;?> ?</th>
<th style="width:80px;"><?php echo _PAYS_;?></th>
<th style="min-width:80px;"><?php echo _POISSON;?></th>
<th style="min-width:80px;"><?php echo _MODE;?></th>
<th style="min-width:80px;"><?php echo _TYPE;?></th>
<th style="width:200px;"><?php echo _PROPOSITIONS;?></th>
<th style="width:150px;"><?php echo _DEMANDES;?></th>
<th style="width:60px;"><?php echo _CONTACTER;?></th>
</tr>
<?php
///////////////////////////////////
// On affiche les enregistrements
///////////////////////////////////
$sql='SELECT id, nom_utilisateur, adresse_email, avatar, professionnel
FROM membres INNER JOIN annonces ON membres.id = annonces.membre
WHERE (((annonces.membre) Is Not Null))
GROUP BY membres.id, membres.nom_utilisateur, membres.adresse_email
ORDER BY id DESC LIMIT ';
$pdo = PDO2::getInstance();
$requete=$pdo->prepare($sql);
$requete->execute();
$requete->setFetchMode(PDO::FETCH_OBJ);
while( $ligne = $requete->fetch() )
{
$id=$ligne->id;
$pseudo=$ligne->nom_utilisateur;
$avatar=$ligne->avatar;
if ($ligne->professionnel==1) {$professionnel=_PROFESSIONNEL;} else {$professionnel='Cofisher';}
$pays=pays($id, $sep) ;
$poisson=poisson($id, $sep);
$mode_de_peche=mode_de_peche($id, $sep);
$type_de_peche=type_de_peche($id, $sep);
$propositions=propositions($id);
if (isset($_SESSION['id']))
{
$est_connecte=!empty($_SESSION['id']);
$est_abonne=true;
$id_from=$_SESSION['id'];
}
else
{
$est_connecte=false;
$est_abonne=false;
$est_administrateur=false;
$id_from=0;
}
if ($est_connecte)
{
$lien_message= '<a href="index.php?module=messages&action=envoi_message';
$lien_message= $lien_message.'&id_from='.$id_from;
$lien_message= $lien_message.'&id_to='.$id;
$lien_message= $lien_message.'&id_to_name='.$pseudo;
$lien_message= $lien_message.'"><img src="images/image/enveloppe_.png" title="'._ENVOYER_UN_MESSAGE_PRIVE_A.$pseudo.'" alt="Message" /></a>';
}
else
{
$lien_message= '<a href="index.php?module=messages/vues&action=erreur_non_connecte';
$lien_message= $lien_message.'"><img src="images/image/enveloppe_non.png" title="'._IL_FAUT_ETRE_CONNECTE_POUR_ENVOYER.$pseudo.' " alt="Message" /></a> ';
}
?>
<tr>
<td><?php echo $pseudo ;?></td>
<td><img class="avatar" src="images/avatar/<?php echo $avatar.'" alt="'.$pseudo ;?>"/></td>
<td><?php echo $professionnel ;?></td>
<td><?php echo $pays ;?></td>
<td><?php echo $poisson ;?></td>
<td><?php echo $mode_de_peche ;?></td>
<td><?php echo $type_de_peche ;?></td>
<td><?php echo $propositions ;?></td>
<td><?php echo $demandes ;?></td>
<td><?php echo $lien_message;?></td>
</tr><?php
}
$requete->closeCursor();
?>
</table>
</section>
Puis, le code du formulaire d'envoi du message privé :
<?php
if ((empty($_POST)) or (!isset($_POST['envoi'])))
{
// On récupère les infos de la page qui appelle l'envoi d'un message
if (isset($_GET['id_from']))
{
$id_from=$_GET['id_from'];
}
if (isset($_GET['id_to']))
{
$id_to=$_GET['id_to'];
}
if (isset($_GET['id_to_name']))
{
$id_to_name=$_GET['id_to_name'];
}
$titre="";
$message="";
$libelle_fieldset=' Envoyer un message à '.$id_to_name;
include_once 'modules/messages/vues/formulaire_envoi_message.php';
}
else
{
if (isset($_POST['id_message']))
{
$id_message=$_POST['id_message'];
}
else
{
$id_message=0;
}
$id_from=htmlspecialchars($_POST['id_from']);
$id_to=htmlspecialchars($_POST['id_to']);
$id_to_name = $_POST['id_to_name'];
$titre=htmlspecialchars($_POST['titre']);
$message=htmlspecialchars($_POST['message']);
$libelle_fieldset=' Envoyer un message à '.$id_to_name;
if ($id_message==0)
{
// On enregistre le message
$pdo = PDO2::getInstance();
$sql='INSERT INTO messages SET id_from = '. $id_from .', id_to = '. $id_to .', titre = "'. $titre . '", message = "'. $message.'"' ;
$requete = $pdo->prepare($sql);
if ($requete->execute())
{
$id_message= $pdo->lastInsertId();
$msg='Le message a bien été envoyé à '.$id_to_name;
include_once 'modules/messages/vues/formulaire_envoi_message_ok.php';
// Envoi d'un e-mail d'information pour la réception d'un message
// On veut utiliser le modèle des membres (~/modeles/membres.php)
include_once 'modeles/membres.php';
$infos_utilisateur = lire_infos_utilisateur($id_to);
$pseudo = $infos_utilisateur['nom_utilisateur'];
$email = $infos_utilisateur['adresse_email'];
// On prépare le message
$titre='Tu as un nouveau message sur COFISHING';
$message='<html><head></head><body><article style="width:70%;border-radius:5px;
text-align:left;
box-shadow:0px 5px 5px 0px rgba(0, 0, 0, 0.25),0px 5px 5px 0px rgba(255, 255, 255, 0.25) inset;
font-size: 1em;
font-weight: normal;
padding: 10px 10px 10px 10px;
font-size: 16px;
border:2px solid red ;">
<div id="banniere" >
<img src="http://cofishing.net/images/galerie/banniere.jpg"
style="opacity: 1;border:1px white;margin-top:8px; margin-left:5px;border-radius:7px;" alt="banniere.jpg" />
</div><p style="color : white;
text-align:center;
font-size: 2em;
font-weight: bold;
border-radius:5px;
background-color:red;
margin-left=10%">Tu as un nouveau message sur COFISHING</p>
<p> Bonjour '.$pseudo.',</p>
<p>Tu as reçu un message COFISHING de la part de '.$id_to_name.'.</p>
<p></p>
<p>Cordialement</p>
<p>L\'équipe cofishing</p>
<p>A bientôt sur : <a href="http://cofishing.net/">COFISHING</a></p>
</article></body></html>';
mail($email, $titre, $message, MAIL_HEADER);
}
else
{
$msg= $requete->errorInfo();
include_once 'modules/messages/vues/formulaire_envoi_message.php';
}
}
}
Et enfin, le fichier formulaire_envoi_message.php :
<section class="section_centre">
<form method="post" enctype="multipart/form-data" name="message">
<fieldset>
<?php
if (isset($msg))
{
print_r( $msg);
echo $sql;
}
?>
<legend><?php echo $libelle_fieldset ; ?></legend>
<input type="hidden" name="id_message" id="id_message" value="<?php echo $id_message ;?>" >
<input type="hidden" name="id_from" id="id_from" value="<?php echo $id_from ;?>">
<input type="hidden" name="id_to" id="id_to" value="<?php echo $id_to ;?>">
<input type="hidden" name="id_to_name" id="id_to_name" value="<?php echo $id_to_name ;?>">
<p><label for ="titre" ><?php echo 'Titre : ';?></label>
<input type="text" name="titre" id="titre" maxlength="100" style="width:320px;" value="<?php echo $titre ;?>" required></p>
<p><label for ="message" ><?php echo 'Message : ';?></label>
<textarea rows="7" cols="60" name="message" id="message" maxlength="255" required value="<?php echo $message ;?>" ></textarea></p>
</fieldset>
<input type="submit" name="envoi" value="envoi"/>
</section>
Modifié par alain17 (15 Nov 2012 - 09:41)