par
finipe » 25 avr. 2015, 14:16
J'ai commencé quelque chose qui fonctionne moyennement, mais c'est une base.
Le script suivant :
Code : Tout sélectionner
$(function()
{
// --> ÇA FONCTIONNE *********************************************
$(".autocomplete_recherche").keyup(function()
{
var searchid = $(this).val();
var dataString = 'recherche=' + searchid;
if(searchid != '')
{
$.ajax(
{
type: "POST",
url: "recherche.php",
data: dataString,
cache: false,
success: function(html)
{
$("#resultat_recherche").html(html).show();
}
});
}
return false;
});
// --> RIEN NE SE PASSE *********************************************
$("#resultat_recherche").live("click", function(e)
{
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#societe').val(decoded);
});
// --> RIEN NE SE PASSE *********************************************
$(document).live("click", function(e)
{
var $clicked = $(e.target);
if (! $clicked.hasClass("autocomplete_recherche"))
{
$("#resultat_recherche").fadeOut();
}
});
// --> RIEN NE SE PASSE *********************************************
$('#societe').click(function()
{
$("#resultat_recherche").fadeIn();
});
});
La page
recherche.php :
Code : Tout sélectionner
<?php
include('_inc.configuration.php');
if($_POST)
{
$q = $_POST['recherche'];
$result = mysql_query("SELECT * FROM adresses WHERE societe LIKE '%$q%' ORDER BY societe LIMIT 10");
while($row = mysql_fetch_array($result))
{
$_RESULTAT = $row['societe'];
$_REQUETE = '<b>'.$q.'</b>';
$_RESULTAT_G = str_ireplace($q, $_REQUETE, $_RESULTAT);
echo "<div class='show'>";
echo "<span class='name'>".$_RESULTAT_G."</span>";
echo "</div>";
}
}
?>
Et le code HTML :
Code : Tout sélectionner
<input type='text' class='autocomplete_recherche' id='societe' name='societe' />
<div id='resultat_recherche'></div>
La requête fonctionne très bien, les propositions depuis la base de données apparaissent. Toutefois, seule la première fonction du script semble fonctionner : les fonctions permettant (il me semble, puisque j'y connais que dalle) de faire disparaître le div résultat quand on clique en dehors ou de remplacer le champ par le résultat sélectionné, tout ça ne fonctionne pas (j'ai fait des tests avec des alert(), il ne se passe rien, les fonctions ne sont même pas lues).
Si ça fonctionne, après je pense pouvoir me démerder, par mimétisme, à remplir automatiquement le reste de mes champs.
J'ai commencé quelque chose qui fonctionne moyennement, mais c'est une base.
Le script suivant :
[code]$(function()
{
// --> ÇA FONCTIONNE *********************************************
$(".autocomplete_recherche").keyup(function()
{
var searchid = $(this).val();
var dataString = 'recherche=' + searchid;
if(searchid != '')
{
$.ajax(
{
type: "POST",
url: "recherche.php",
data: dataString,
cache: false,
success: function(html)
{
$("#resultat_recherche").html(html).show();
}
});
}
return false;
});
// --> RIEN NE SE PASSE *********************************************
$("#resultat_recherche").live("click", function(e)
{
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#societe').val(decoded);
});
// --> RIEN NE SE PASSE *********************************************
$(document).live("click", function(e)
{
var $clicked = $(e.target);
if (! $clicked.hasClass("autocomplete_recherche"))
{
$("#resultat_recherche").fadeOut();
}
});
// --> RIEN NE SE PASSE *********************************************
$('#societe').click(function()
{
$("#resultat_recherche").fadeIn();
});
});[/code]
La page [b]recherche.php[/b] :
[code]<?php
include('_inc.configuration.php');
if($_POST)
{
$q = $_POST['recherche'];
$result = mysql_query("SELECT * FROM adresses WHERE societe LIKE '%$q%' ORDER BY societe LIMIT 10");
while($row = mysql_fetch_array($result))
{
$_RESULTAT = $row['societe'];
$_REQUETE = '<b>'.$q.'</b>';
$_RESULTAT_G = str_ireplace($q, $_REQUETE, $_RESULTAT);
echo "<div class='show'>";
echo "<span class='name'>".$_RESULTAT_G."</span>";
echo "</div>";
}
}
?>[/code]
Et le code HTML :
[code]<input type='text' class='autocomplete_recherche' id='societe' name='societe' />
<div id='resultat_recherche'></div>[/code]
La requête fonctionne très bien, les propositions depuis la base de données apparaissent. Toutefois, seule la première fonction du script semble fonctionner : les fonctions permettant (il me semble, puisque j'y connais que dalle) de faire disparaître le div résultat quand on clique en dehors ou de remplacer le champ par le résultat sélectionné, tout ça ne fonctionne pas (j'ai fait des tests avec des alert(), il ne se passe rien, les fonctions ne sont même pas lues).
Si ça fonctionne, après je pense pouvoir me démerder, par mimétisme, à remplir automatiquement le reste de mes champs.