Late I know but I had a little play around and created a more flexible solution which does not use inline event handlers and will accomodate more forms / elements if required with no further work... it might be of use for future reference maybe.
<form action='proprete.php' method='post'>
<input type='number' name='number' id='number' class='inpBox' value=303 style='height: 30px;width:200px;font-size: 15px;'>
</form>
<form action='proprete.php' method='post'>
<input type='text' name='username' id='username' class='inpBox' value='sergio' style='height: 30px;width:200px;font-size: 15px;'>
</form>
<form action='proprete.php' method='post'>
<input type='time' name='time' id='time' class='inpBox' style='height: 30px;width:200px;font-size: 15px;'>
</form>
<form action='proprete.php' method='post'>
<input type='week' name='week' id='week' class='inpBox' style='height: 30px;width:200px;font-size: 15px;'>
<input type='submit' value='Basculer vers' name='basculer' style='height: 30px;width:150px;font-size: 15px;'/>
</form>
<form action='proprete.php' method='post'>
<select id='zone' name='zone'>
<option selected hidden='hidden' value=null>Select Zone
<option>first
<option>second
<option>third
<option>fourth
</select>
</form>
<script>
document.getElementById('zone').addEventListener( 'change', function(e){
let tmp={};
/* Find all forms that share the same action (though this query can easily be modifed) and the elements within */
Array.prototype.slice.call( document.querySelectorAll( 'form[action="proprete.php"] > *:not([type="submit"])' ) ).forEach( function( e ){
/* add name and value to temporary object */
tmp[e.name]=e.value;
});
/* process the temp object to create a querystring */
let href=Object.keys( tmp ).map(function( k ){
return [ k, tmp[ k ] ].join('=');
}).join('&');
/* optional: change url but stay on same page ~ useful if using ajax perhaps */
history.replaceState( tmp, null, '?' + href );
alert( href )
/* remove alert & uncomment below to redirect */
//location.href=href;
},false);
</script>
To facilitate a value where a field has been left blank one could alter the javascript like this.
document.getElementById('zone').addEventListener( 'change', function(e){
let tmp={};
/* a default value for empty fields */
let def='unknown';
/* Find all forms that share the same action (though this query can easily be modifed) and the elements within */
Array.prototype.slice.call( document.querySelectorAll( 'form[action="proprete.php"] *:not([type="submit"])' ) ).forEach( function( e ){
/* add name and value to temporary object, using default value for blank fields */
if( typeof( e.name )!='undefined' ) tmp[e.name]=( e.value=='' ) ? def : e.value;
});
/* ...... etc as before */
},false);