Search code examples
phplaravellaravel-4laravel-blade

laravel how to route to a route on a javascript?


I have this jquery

$(".waitingTime .button").click(function () {
    alert("Ema");
});

I have a a tag like this:

<a href="{{ URL::to('restaurants/20') }}"></a>

Can I do the same href action in the jquery function?

Many Thanks


Solution

  • yes this is possible and has nothing to do with Laravel. There are different possibilities. If your query is embedded within the same laravel view, you put the URL directly in your jQuery code, for example like this:

    $(".waitingTime .button").click(function () {
      window.location.href = "{{URL::to('restaurants/20')}}"
    });
    

    But I think the best option is to add the URL on your button tag as a data attribute and then let jquery go to that URL. That way you can make your buttons more dynamic and have more capsulated code.

    One example might be:

    <div class="waitingTime">
      <button class="button link-button" data-href="{{URL::to('restaurants/20')}}">
      Click me
      </button>
    </div>
    
    $(".link-button").click(function () {
      window.location.href = $(this).data('href');
    });
    

    That way you can always give a button with the class link-button a data-href attribute with the URL you want to open when the button is clicked and don't have to add additional jquery.