Début ajout de l'autocomplétion ajax sur la liste déroulante des pays
This commit is contained in:
parent
673c6a2fda
commit
602473dced
@ -47,22 +47,24 @@ if(isset($_GET['keyref']) && !empty($_GET['keyref']) || isset($_GET['keylabel'])
|
|||||||
|
|
||||||
|
|
||||||
// Generation liste des pays
|
// Generation liste des pays
|
||||||
if(isset($_POST['search']) && !empty($_POST['search']))
|
if(isset($_POST['pays']) && !empty($_POST['pays']))
|
||||||
{
|
{
|
||||||
print 'hello world';
|
|
||||||
$sql = "SELECT rowid, code, libelle, active";
|
$sql = "SELECT rowid, code, libelle, active";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_pays";
|
$sql.= " FROM ".MAIN_DB_PREFIX."c_pays";
|
||||||
$sql.= " WHERE active = 1 AND libelle LIKE '%" . $_POST['search'] . "%'";
|
$sql.= " WHERE active = 1 AND libelle LIKE '%" . $_POST['pays'] . "%'";
|
||||||
$sql.= " ORDER BY code ASC;";
|
$sql.= " ORDER BY libelle ASC;";
|
||||||
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$db->query($sql);
|
||||||
|
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
print '<ul>';
|
print '<ul>';
|
||||||
while($data = mysql_fetch_assoc($resql))
|
while($data = mysql_fetch_assoc($resql))
|
||||||
{
|
{
|
||||||
print '<li>'.stripslashes($data['libelle']).'</li>';
|
print '<li>';
|
||||||
|
print stripslashes($data['libelle']);
|
||||||
|
print '<span class="informal" style="display:none">'.$data['rowid'].'-idcache</span>';
|
||||||
|
print '</li>';
|
||||||
}
|
}
|
||||||
print '</ul>';
|
print '</ul>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -323,11 +323,12 @@ class Form
|
|||||||
if ($conf->use_ajax && $conf->global->CODE_DE_TEST == 1)
|
if ($conf->use_ajax && $conf->global->CODE_DE_TEST == 1)
|
||||||
{
|
{
|
||||||
print '<div>';
|
print '<div>';
|
||||||
print '<input type="text" id="search" name="search" />';
|
print '<input type="text" size="45" id="pays" name="pays" />';
|
||||||
|
print '<input type="hidden" name="pays_id" id="pays_id" value="" '.$htmloption.' />';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '<div id="hint"></div>';
|
print '<div id="hint" class="autocomplete"></div>';
|
||||||
print '<script type="text/javascript">';
|
print '<script type="text/javascript">';
|
||||||
print 'new Ajax.Autocompleter(\'search\',\'hint\',\''.DOL_URL_ROOT.'/ajaxresponse.php\');';
|
print 'new Ajax.Autocompleter(\'pays\',\'hint\',\''.DOL_URL_ROOT.'/ajaxresponse.php\',{method: \'post\',paramName: \'pays\',afterUpdateElement: ac_return});';
|
||||||
print '</script>';
|
print '</script>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -592,3 +592,21 @@ function newpopup(url,title) {
|
|||||||
fen=window.open(tmp,title,wfeatures);
|
fen=window.open(tmp,title,wfeatures);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*=================================================================
|
||||||
|
Purpose: Récupère l'id d'une autcompletion Ajax
|
||||||
|
Input: field,item
|
||||||
|
Author: Regis Houssin
|
||||||
|
Licence: GPL
|
||||||
|
==================================================================*/
|
||||||
|
function ac_return(field, item){
|
||||||
|
// on met en place l'expression régulière
|
||||||
|
var regex = new RegExp('[0123456789]*-idcache', 'i');
|
||||||
|
// on l'applique au contenu
|
||||||
|
var idCache = regex.exec($(item).innerHTML);
|
||||||
|
//on récupère l'id
|
||||||
|
id = idCache[0].replace('-idcache', '');
|
||||||
|
// et on l'affecte au champ caché
|
||||||
|
$(field.name+'_id').value = id;
|
||||||
|
}
|
||||||
@ -380,6 +380,7 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
|||||||
|
|
||||||
print '<tr><td width="25%">'.$langs->trans('Country').'</td><td colspan="3">';
|
print '<tr><td width="25%">'.$langs->trans('Country').'</td><td colspan="3">';
|
||||||
$form->select_pays($soc->pays_id,'pays_id',$conf->use_javascript?' onChange="autofilltownfromzip_save_refresh_create()"':'');
|
$form->select_pays($soc->pays_id,'pays_id',$conf->use_javascript?' onChange="autofilltownfromzip_save_refresh_create()"':'');
|
||||||
|
if ($conf->use_javascript && $conf->use_javascript) print '<div id="hint"></div>';//utile pour afficher la recherche des pays avec ajax
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans('State').'</td><td colspan="3">';
|
print '<tr><td>'.$langs->trans('State').'</td><td colspan="3">';
|
||||||
|
|||||||
@ -1044,3 +1044,32 @@ td.hidden {
|
|||||||
td.alerte {
|
td.alerte {
|
||||||
background: #FF99A9;
|
background: #FF99A9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ============================================================================== */
|
||||||
|
/* Liste déroulante de l'autocompletion Ajax */
|
||||||
|
/* ============================================================================== */
|
||||||
|
|
||||||
|
div.autocomplete {
|
||||||
|
position:absolute;
|
||||||
|
width:250px;
|
||||||
|
background-color:white;
|
||||||
|
border:1px solid #888;
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
div.autocomplete ul {
|
||||||
|
list-style-type:none;
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
div.autocomplete ul li.selected { background-color: #ffb;}
|
||||||
|
div.autocomplete ul li {
|
||||||
|
list-style-type:none;
|
||||||
|
display:block;
|
||||||
|
margin:0;
|
||||||
|
padding:2px;
|
||||||
|
height:16px;
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user