Jump to content

Archived

This topic is now archived and is closed to further replies.

c_pattle

Codeigniter routes problem

Recommended Posts

I have a form that when submitted goes to "products/search/"

 

This is the method that it directs too. 

 

    function search($searchCat = NULL, $searchString = NULL)
    {
        if($this->input->post('searchSubmit'))
        {
            $searchCat = $this->input->post('searchCat');
            $searchString = $this->input->post('searchString');
        }
        
         //Get the base URL and assign it to a variable
        $aData['base_url'] = base_url();
        
        //Run the getProductsBySearch function in the product model and pass two parameters
        //This returns the search results
        $aData['query'] = $this->ProductModel->GetProductsBySearch($searchCat, $searchString);
        
        //Run the getBestSellers function in the product model
        //This returns the top 3 best selling products
        $aData['bestsellers'] = $this->ProductModel->getBestSellers();
        
        //Pass the best sellers data to the best sellers view and save it in a variable
        $aData['rightSidebar'] = $this->load->view('products/bestsellers', $aData, true);
       
        //Get breadcrumb trail and assign it to a variables
        $aData['breadcrumbs'] = create_breadcrumb();
        
        //Pass the data to the left sidebar view and save it in a variable
        $aData['leftSidebar'] = $this->load->view('products/leftsidebar', $aData, true);
        
        //Load the cart library
        //$this->load->library('cart');
        
        //Get the contents, total amount and total items of the cart
        $aData['cart'] = $this->cart->contents();
        $aData['cart_total'] = $this->cart->total();
        $aData['total_items'] = $this->cart->total_items();
        
        //Load the layout library
        $this->load->library('layout');  
        
        //Get the header and footer and save them in variables
        $aData['header'] = $this->layout->pageHeader($aData);
        $aData['footer'] = $this->layout->pageFooter();
        
        //If more than one row is returned load multiple product view otherwise load single view
        if ($aData['query']->num_rows() > 1)
        {
            $aData['content'] = $this->load->view('products/products_layout', $aData, true);
        } 
        else
        {
            $aData['content'] = $this->load->view('products/product_layout', $aData, true);
        }
        
        //Load the three column layout view
        $this->load->view('layout/main/three_col', $aData);
        
    }

 

Then in my views file I have the following lines. 

 

$route['products/search/'] = "products/search/";
$route['products/search/(:any)/(:any)'] = "products/search/$1/$2";

 

It works fine when the URL is something like "products/search/all/03241/" but not when it's just "products/search". 

 

Does anyone know what I'm doing wrong?

Share this post


Link to post
Share on other sites

Hi c_pattle,

 

 

Then in my views file I have the following lines. 

 

$route['products/search/'] = "products/search/";
$route['products/search/(:any)/(:any)'] = "products/search/$1/$2";

 

It works fine when the URL is something like "products/search/all/03241/" but not when it's just "products/search". 

 

Does anyone know what I'm doing wrong?

 

This should not be in your view file.  If this is in your view file, then it's referring to a local variable, not the config file variable. 

 

I would recommend using _remap.  I will not explain what it is here in this post, but if you give me until tomorow, my post will publish.  It will teach you to use it, and I have a very simple example in which you will be able to modify it for your needs. 

 

I regret not posting it today, as I had no time to finish it.  I will come back once it's published.  (The latest will be by tomorrow)

If you can't wait that long, then go ahead and google _remap.

Share this post


Link to post
Share on other sites

I was also the same problem and I fixed it by a small change in URI.php page in the system/core

 

In my checking I feel like it was due to a small bug in codeigniter. Anyway I am not an expert.

 

Anyway I fixed it.

 

I was a problem with codeigniter url rewriting.

 

I have to go to www.abc.com/catalog/product/4354

 

when using the url www.abc.com/samsung_galaxy_y

 

I have explained it in my blog myphplibrary.blogspot.in

 

http://myphplibrary.blogspot.in/2012/03/codeigniter-routing-issue-fixation-url.html

Share this post


Link to post
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.