finish dealing with counties with spaces, etc., RT#4496
[freeside.git] / httemplate / browse / cust_main_county.cgi
index c4d1d18..736d7fd 100755 (executable)
@@ -148,7 +148,11 @@ if ( $country && $cgi->param('state') =~ /^([\w \-\'\[\]]+)$/ ) {
 $cgi->delete('state');
 
 my $county = '';
-if ( $country && $state && $cgi->param('county') =~ /^([\w \-\'\[\]]+)$/ ) {
+if ( $country && $state &&
+     $cgi->param('county') =~
+       /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=\[\]]+)$/
+   )
+{
   $county = $1;
   if ( $county eq '__NONE__' ) {
     $title = "No county, $title";
@@ -175,9 +179,9 @@ $cgi->param('dummy', 1);
 
 my $filter_change =
   "window.location = '". $cgi->self_url.
-  ";country=' + document.getElementById('country').options[document.getElementById('country').selectedIndex].value + ".
-  "';state='   + document.getElementById('state').options[document.getElementById('state').selectedIndex].value +".
-  "';county='  + document.getElementById('county').options[document.getElementById('county').selectedIndex].value;";
+  ";country=' + encodeURIComponent( document.getElementById('country').options[document.getElementById('country').selectedIndex].value ) + ".
+  "';state='   + encodeURIComponent( document.getElementById('state').options[document.getElementById('state').selectedIndex].value ) +".
+  "';county='  + encodeURIComponent( document.getElementById('county').options[document.getElementById('county').selectedIndex].value );";
 
 #restore this so pagination works
 $cgi->param('country',  $country) if $country;
@@ -186,7 +190,7 @@ $cgi->param('county',   $county ) if $county;
 $cgi->param('taxclass', $county ) if $taxclass;
 
 my $html_posttotal =
-  '( show country: '.
+  '<BR>( show country: '.
   include('/elements/select-country.html',
             'country'             => $country,
             'onchange'            => $filter_change,