How can I keep anchor alive in pagination links? - php

Here is my code in the controller:
$unique_products = unique_products::orderBy('id', 'DESC')->paginate(10);
And here is my code in the view:
{{$unique_products->render()}}
And here is my current URL:
http://www.example.com/products#anchor
My problem is, when I click on other pages (which are in pagination box), the anchor is deleted from the URL. It will be something like this:
http://www.example.com/products?page=1
Anyway, how can I keep the anchor exist? I want this:
http://www.example.com/products?page=1#anchor
How can I do that?

First of all you need to display your links like shown in the official docs because when you want to navigate through pages your unique_products has access to the fragment method which can retrieve fragments from the url which are actually Hashtags (#) and then append them to every page change url:
{{ $unique_products->fragment('foo')->links() }}

Related

Laravel how to add a part of url to the current url?

I see that when I have a url like:
mysite.com/category/1 - without the closing slash
creating a link like:
subcat
will lead to a link like :
mysite.com/category/subcat
thus it goes back to the last slash in the url, but what I need is this:
mysite.com/category/1/subcat
is there a way or function in laravel to append a part of url to the current url?
Maybe the URL helper can help you? I assume you use blade
subcat
https://laravel.com/docs/5.6/helpers#method-url

how to put URL inside of laravel blade

I have database structure like Book & download link ..
$book= new Book();
$book->name = $request->Input(['name']);
$book->download_link = $request->Input(['download_link']); // eg. https://bnbooks.com/1234
$book->save();
now if i want to give this in blade page ..like download link..how do i put in href tag so that it will redirect the user to that page?
{{$book->name}}
// This doesn't work
URL::to is a function to create a url on your site from only the path (for example /foo/bar). Since you store the full URL, you can just do
{{$book->name}}
You can do something like
{{$book->name}}
to show the url.
If you have a url like /example/example and you also want to show the domain name in front of the url, you do
{{$book->name}}
This will create an url like localhost:8000/example/example (In case of localhost)
Hope it works
{{$book->name}}

Base_url() issue with the anchor tag in CodeIgniter

I am new to CodeIgniter and having trouble with link formation. In my page, I have a link to another page set to:
<li>Feed Page</li>
Here the feed is one of my controllers, but the link is showing as:
http://localhost/BusinessPad/localhost/BusinessPad/feed,
which doesn't actually exist. I can't understand how this happened; I have made sure: $config['index_page'] = ''; and I added an .htaccess file. If I leave $config['base_url']='', the base URL is still not working for me.
To deal with anchor tag, You can have like this
Feeds
You shall put the base_url inside your anchor tag and then your controller name.
Then you will get the url like localhost/BusinessPad/feed which you expect.
Note : Make sure you have loaded the url helper by $this->load->helper('url'); or loaded in autoload itself
Feed Page
if this not works use this
Feed Page
Explain :
<?php echo base_url();?>//URL
BusinessPad//Controller
feed//Function
in 1. this will give your site URL. http://localhost/BusinessPad/localhost/. if you host this to live server it will come with tour domain name.
then in 2 it will call your controller which Contains your functions.
Note: if you juct call your controller it will call automatically public function index() if you create.
then in 3 it will redirect to your function which you exactly need.

PHP Keeping URL parameters when clicking a hyperlink to add GET variable

I'm trying to figure out how to have a hyperlink that will add a new/additional GET variable to the URL, but will not remove any existing GET variables or anchor tags. So, if my URL is any of the following:
http://example.com/index.html?color=blue
http://example.com/index.html?color=blue&type=shirt
http://example.com/index.html?color=blue#reviews
...and I click the link, such as:
Large
... the URL should be updated to:
http://example.com/index.html?color=blue&size=large
http://example.com/index.html?color=blue&type=shirt&size=large
http://example.com/index.html?color=blue&size=large#reviews
Right now, if I make a link as above, it will remove all existing GET variables and anchor tags from the existing URL.
What's the fix?
You can do something like:
Large
See QUERY_STRING.
much like Samsquanch's answer but try replacing SERVER with GET
Large

how to give an anchor point in Laravel view

I am using blade templating and I want to make the users navigate to a point on a page when they click on a link. This is my view :-
View::make($data->path)->with('data', $data)->with('title', $title);
My path is being fetched from the database.
There is a link:-
<a id="middle">Welcome to the user section</a>
Now I don't think putting #middle in make() will help :-
I tried this:-
View::make($data->path."php#middle")->with('data', $data)->with('title', $title);
and
View::make($data->path.".blade.php#middle")->with('data', $data)->with('title', $title);
but neither seems to work.
How can i make this work?
Your view is just the file to render -- you shouldn't confuse it with the request URL, which is determined by routes.
All you need to do is add the anchor to the URL the user clicks to get to this location, on the end of your route. If it's not something you can determine at the time the link is generated, you should use a redirect in your logic to the URL you wish to include.
That said, you could also pass a variable to your page that javascript uses to scroll the page to the appropriate location as well:
View::make($data->path)->with('data', $data)->with('title', $title)->with('scroll', 'middle');
Then, on your page, in javascript:
document.getElementById('{{ $middle }}').scrollIntoView();
override getRedirectUrl :
protected function getRedirectUrl()
{
$url = $this->redirector->getUrlGenerator();
return $url->previous() . '#hashid';
}

Categories