From 9d145b38e6b47c8875e0d3f0b64c529c0e31eb17 Mon Sep 17 00:00:00 2001 From: Regis Houssin <regis@dolibarr.fr> Date: Tue, 12 Oct 2010 17:37:55 +0000 Subject: [PATCH] Test: auto fill zip and town with jquery --- htdocs/core/class/html.formcompany.class.php | 8 ++++---- htdocs/lib/ajax.lib.php | 12 ++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php index 41528814026..bfdec57b0d1 100644 --- a/htdocs/core/class/html.formcompany.class.php +++ b/htdocs/core/class/html.formcompany.class.php @@ -612,8 +612,8 @@ class FormCompany */ function select_zipcode($selected='',$field1='zipcode',$field2='town',$field3='fk_pays') { - print ajax_autocompleter_ziptown($field1,$field2,$field3,DOL_URL_ROOT.'/societe/ajaxziptown.php')."\n"; - print '<input id="'.$field1.'" type="text" name="'.$field1.'" size="6" value="'.$selected.'">'."\n"; + print ajax_autocompleter_ziptown($selected='',$field1,$field2,$field3,DOL_URL_ROOT.'/societe/ajaxziptown.php')."\n"; + print '<input id="search_'.$field1.'" type="text" name="search_'.$field1.'" size="6" value="'.$selected.'">'."\n"; } /** @@ -621,8 +621,8 @@ class FormCompany */ function select_town($selected='',$field1='town',$field2='zipcode',$field3='fk_pays') { - print ajax_autocompleter_ziptown($field1,$field2,$field3,DOL_URL_ROOT.'/societe/ajaxziptown.php')."\n"; - print '<input id="'.$field1.'" type="text" name="'.$field1.'" value="'.$selected.'">'."\n"; + print ajax_autocompleter_ziptown($selected='',$field1,$field2,$field3,DOL_URL_ROOT.'/societe/ajaxziptown.php')."\n"; + print '<input id="search_'.$field1.'" type="text" name="search_'.$field1.'" value="'.$selected.'">'."\n"; } } diff --git a/htdocs/lib/ajax.lib.php b/htdocs/lib/ajax.lib.php index 331cd90b897..1dfac97e4a2 100644 --- a/htdocs/lib/ajax.lib.php +++ b/htdocs/lib/ajax.lib.php @@ -134,13 +134,15 @@ function ajax_autocompleter($selected='',$htmlname,$url,$option='') * \param url chemin du fichier de reponse : /chemin/fichier.php * \return string script complet */ -function ajax_autocompleter_ziptown($field1,$field2,$field3,$url,$option='') +function ajax_autocompleter_ziptown($selected='',$field1,$field2,$field3,$url,$option='') { $script=''; + + $script.= '<input type="hidden" name="'.$field1.'" id="'.$field1.'" value="'.$selected.'" />'; $script.= '<script type="text/javascript">'; $script.= 'jQuery(document).ready(function() { - jQuery("input#'.$field1.'").blur(function() { + jQuery("input#search_'.$field1.'").blur(function() { //console.log(this.value.length); if (this.value.length == 0) { @@ -148,15 +150,16 @@ function ajax_autocompleter_ziptown($field1,$field2,$field3,$url,$option='') jQuery("#'.$field2.'").val(""); } }); - jQuery("input#'.$field1.'").autocomplete({ + jQuery("input#search_'.$field1.'").autocomplete({ source: function( request, response ) { jQuery.get("'.$url.($option?'?'.$option:'').'", { '.$field1.': request.term }, function(data){ response( jQuery.map( data, function( item ) { if (data.length == 1) { jQuery("#'.$field1.'").val(item.value); jQuery("#'.$field2.'").val(item.field2); + jQuery("#search_'.$field2.'").val(item.field2); if (item.field3 > 0) { - jQuery("#'.$field3.'").val(ui.item.field3); + jQuery("#'.$field3.'").val(item.field3); } } return { @@ -172,6 +175,7 @@ function ajax_autocompleter_ziptown($field1,$field2,$field3,$url,$option='') minLength: 2, select: function( event, ui ) { jQuery("#'.$field2.'").val(ui.item.field2); + jQuery("#search_'.$field2.'").val(ui.item.field2); if (ui.item.field3 > 0) { jQuery("#'.$field3.'").val(ui.item.field3); } -- GitLab