Voici un petit script qui vous permettra d’ajouter des messages rapidement et sans recharger la page, il est basé sur PHP et jQuery.
Vous pouvez consulter la démonstration ici : Démo
La structure du script sera composée par les fichiers suivants :
- index.php : Affichage du formulaire pour ajouter les messages
- new_data.php : Le fichier qui sera chargé d’ajouter les messages dans la base de données
- style.css : Style de la page
index.php
<div id="wrapAll"> <div> <h2>Votre message :</h2> <div><textarea name="message" id="message" class="textarea-zone" maxlength="255" placeholder="Exprimez-vous" ></textarea></div> <div><input type="submit" value="Ajouter un commentaire" name="submit" class="btn-submit"/></div> </div> <h2>Liste des messages :</h2> <div id="load"></div> <ul id="update" class="journal"> <?php $req = "SELECT msg, mes_id FROM tutos_message order by time desc, mes_id desc"; //echo $req; $res = mysql_query($req); while ($r = mysql_fetch_assoc($res)) { $msg = $r['msg']; $msg_id = $r['mes_id']; echo '<li> <div>'. $msg .'</div> </li>'; } ?> </ul> </div>
new_data.php
<?php //Fichier pour l'appel à la base de données include_once('../config.php'); if(isset($_POST['message'])) { $message = $_POST['message']; $req = "INSERT INTO tutos_message (msg, time) values ('$message', '". date('YmdHis') ."')"; mysql_query($req); $sql_in = mysql_query("SELECT msg, mes_id FROM tutos_message order by time desc"); $r = mysql_fetch_assoc($sql_in); $msg = $r['msg']; $msg_id = $r['mes_id']; ?> <li> <div><?php echo $msg; ?></div> </li> <?php } ?>
style.css
#wrapAll { width: 800px; margin:0px auto; border: 0px solid #e1e1e1; padding: 10px; } .textarea-zone { border: 1px solid #e1e1e1; width: 600px; height: 50px;} .btn-submit { border-radius: 3px; margin: 5px 0; background-color: rgb(1, 117, 174); color: #ffffff; border: 0; padding: 5px; cursor: pointer; } h2 { font-size: 1.1em; color: rgb(1, 117, 174); text-transform: uppercase;} ul.journal { list-style:none; font-size:1.1em; margin-left: -40px; width: 600px; margin-bottom: 15px; } ul.journal li { display:none; position:relative; padding:5px; border-bottom:1px solid #e1e1e1; line-height:1em; background-color:#fff; line-height: 25px; min-height:30px; color: #000000; margin-bottom: 5px; } ul.journal li:first-child{ border-bottom:1px solid #e1e1e1; padding: 0px; padding: 5px;}
Code Javascript
$(function() { $(".btn-submit").click(function() { var newMessage = $("#message").val(); var dataMessage = 'message='+ newMessage; if(newMessage=='') { alert("Veuillez saisir votre message"); } else { $("#load").show(); $("#load").fadeIn(500).html('<img src="loader.gif" align="absmiddle"> <span class="loading">Chargement des messages...</span>'); $.ajax({ type: "POST", url: "new_data.php", data: dataMessage, cache: false, success: function(html){ $("ul#update").prepend(html); $("ul#update li:first").slideDown("slow"); document.getElementById('message').value=''; document.getElementById('message').focus(); $("#load").hide(); } }); } return false; }); });
N’oubliez pas d’inclure un appel vers la librairie jQuery.
Vous pouvez consulter la démonstration ici : Démo