user3242861 user3242861 - 1 month ago 14
jQuery Question

String with spaces when concatenate

I'm using .get() for getting a view and i have to concatenate two variables in the path but when i do that path stay with a lot of spaces. The variables values are well received from two drop downs.

the problem is that:

function getTableData(){
$( "#getTable" ).click(function(e){
table = $('#tabax').val();
type = $('#type').val();
alert(table);
alert(type);
alert("upload-file/tb/"+table+"/"+type);
$.get("upload-file/tb/"+table+"/"+type, function(response){
$('.table-data').html(response);
});
e.preventDefault();
});}


my html:

<div class="form-group">
{!! Form::label('tabax', 'Table:') !!}
{!! Form::select('tabax', $tabax, null, ['id'=> 'tabax', 'class' => 'form-control tabax']) !!}
</div>
<div class="form-group">
{!! Form::label('type', 'Type:') !!}
{!! Form::select('type', $type, null, ['id'=> 'type', 'class' => 'form-control']) !!}
</div>


and the path is:

http://localhost:8000/app/upload-file/tb/FT%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/1


I do not know why it happens, i'm doing this a lot and this is the first time that i have this problem.

Answer

Supposedly values in those tables appear from CHAR(n) SQL fields, which automatically up-filled with spaces. If you have access to the server I suggest to change field types to VARCHAR(n) and migrate data trimming values, this way you will reduce client-server traffic.

Otherwise you can trim them on client side (replace lines 3 and 4):

table = $('#tabax').val().trim();
type = $('#type').val().trim();