Bonjour,
J'ai un soucis au niveau de mon formulaire de message dans lequel j'ai mis le destinataire avec auto-complétion seul soucis c'est lorsque je tape par exemple "je" il m'affiche bien le résultat jean,jeanne et lorsque je click sur jean il me remplit mon input jusque là tout va bien or j'ai lié le nom du destinataire avec son id pour envoyer le message cependant pour que cela fonctionne il faut que mon input soit remplit par jean et que l'auto-complétation me propose que jean or la il me propose encore jeanne voici mon code javascript:
et mon search.php
En gros je veux que ma liste se mette automatiquement a jour lorsque l'utilisateur click sur le nom d'un utilisateur et quelle ne m'affiche pas les anciens resultats
merci d'avance
J'ai un soucis au niveau de mon formulaire de message dans lequel j'ai mis le destinataire avec auto-complétion seul soucis c'est lorsque je tape par exemple "je" il m'affiche bien le résultat jean,jeanne et lorsque je click sur jean il me remplit mon input jusque là tout va bien or j'ai lié le nom du destinataire avec son id pour envoyer le message cependant pour que cela fonctionne il faut que mon input soit remplit par jean et que l'auto-complétation me propose que jean or la il me propose encore jeanne voici mon code javascript:
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function(){
$(".search").keyup(function()
{
var searchid = $(this).val();
var dataString = 'search='+ searchid;
if(searchid!='')
{
$.ajax({
type: "POST",
url: "search.php",
data: dataString,
minLength: 3,
autoFocus: true,
cache: true,
html: true,
success: function(html)
{
$("#result").html(html).show();
}
});
}return false;
});
jQuery("#result").live("click",function(e){
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#searchid').val(decoded);
});
jQuery(document).live("click", function(e) {
var $clicked = $(e.target);
if (! $clicked.hasClass("search")){
jQuery("#result").fadeOut();
}
});
$('#searchid').click(function(){
jQuery("#result").fadeIn();
});
});
</script>
<input type="text" autocomplete="off" name="destinataire" class="search" id="searchid" placeholder="Utilisateur" style="margin-bottom:10px;width:90%; margin-right:auto;margin-left:auto;" > <br />
</input>
et mon search.php
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
mysql_select_db("test");
$user = $_SESSION['login'];
$reponse = $bdd->query("SELECT * FROM membre WHERE login='$user'");
while ($donnees = $reponse->fetch())
{
$id = $donnees['id'];
}
$reponse->closeCursor();
function safe($value){
return mysql_real_escape_string($value);
}
if($_POST)
{
$q=safe($_POST['search']);
$sql_res=mysql_query("select Login,Avatar,id from membre where Login like '%$q%' AND id <> $id order by id LIMIT 5")
or die(mysql_error());
while($row=mysql_fetch_array($sql_res))
{
$id_dest=$row['id'];
$_SESSION['dest']=$id_dest;
$username=safe($row['Login']);
$final_username = $username;
$Avatar=$row['Avatar'];
if(empty($Avatar)) $Avatar= "http://martinpaulus.be/logo/sites/default/files/default_images/default-avatar-200x200.jpg";
else echo '<img src="'.empty($Avatar).'" alt=""/>';
?>
<div class="show" align="left">
<img src="<?php $id_dest; echo $Avatar ?>" style="width:50px; height:50px; float:left; margin-right:6px;" /><span class="name"><?php $id_dest; echo $final_username?><br/>
</div>
<?php
}
}
?>
En gros je veux que ma liste se mette automatiquement a jour lorsque l'utilisateur click sur le nom d'un utilisateur et quelle ne m'affiche pas les anciens resultats
merci d'avance