i have this code :
$('button#monbtn').click(function() {
var username = $('#username').val();
var msg = $('#msg').val();
var url = "{{ path('ajax_subcategories', {'username': username,'msg':msg})|escape('js') }}";
}
I get the username and msg from inputs, and i want to add them to the url, but i get an error saying that variable username doesn't exist.
You're not writing the username variable, you're literally writing the word username
into the string. Hence the template parser (I guess) says that itself does not know this var.
In JS, you have to print vars like this:
var url = "{{ path('ajax_subcategories', {'username': "+username+",'msg':"+msg+"})|escape('js') }}";
Your variables will not be recognized as strings. Concatenate your variables into the final string url.
$('button#monbtn').click(function() {
var username = $('#username').val();
var msg = $('#msg').val();
var url = "{{ path('ajax_subcategories', {'username': " + username + ",'msg':" + msg + "})|escape('js') }}";
}