CodeIgniter ile yönlendirmeleri işlemek nasıl?

3 Cevap php

i veritabanına bir öğe eklemek için bir form var, ben tüm verileri almak: im sorunları bir CodeIgniter proje başlangıç ​​sahip, sorun ben bir denetleyici bir şey yapmak ve sonra ben bir sayfa sonuç, bir örnek görüntülemek istediğinizde olduğunu denetleyicisi ve veritabanına kaydetmek ve sonra ben bir başarı msj ile ana sayfaya yönlendirmek için (her şey iyi giderse) i ile bu yapıyordu istiyorum

$this->load->view('admin', $data);

Sorun url böylece her sayfa şimdi buldum, başka bir öğe ekler yenilenir söyleyerek Admin / addItem tutmasıdır:

redirect('admin','refresh');

but this only helps me when i dont need to display any msg because this function dont allow to send a $data var. Any ideas? Probably this is really easy to fix but i cant find a way to handle the flow of the application the way i want, any help is apreciated. thanks ;)

3 Cevap

Flashdata bu bağlantıyı takip edin ve yaklaşık yarım sayfa aracılığıyla flashdata için dokümanlar bulacaksınız, senin arkadaşın.

Basically if your form functions are successful you set flashdata with your success message, $this->session->set_flashdata('success', 'You successfully did something, yay!'); Now redirect to your admin page. redirect('admin','refresh'); on your admin page check for existing flashdata and echo it to the user

Could be easy to fix or it could be also difficult to fix, look at the documentation about uri routing http://codeigniter.com/user_guide/general/routing.html

Benim test app ben bu vars kullanın

$route['default_controller'] = "main";
$route['scaffolding_trigger'] = "";

Eğer siteyi ziyaret ederseniz ilk denetleyici şebekesine arama böylece ana bir denetleyici

sizin durumda ben böyle bir şey kullanmak istiyorsunuz

$route['admin/:num'] = "catalog/products"; 

Bu yönetici / * katalog / ürünler için herhangi bir erişim yönlendirme olur

Yaratıcı olun ;-)

Bunu yerine bu yaklasimimizi kullanmak gerektiğini düşünüyorum:

instead of calling the admin view or redirect the header, you should send the post from the form direct to the admin function, inside the admin function if the $_POST variable is not empty means that you should save the data in database calling other function in the same controller or in one model example:($this->save_data_in_database();) and send the result of it to the view again. If the $_POST variable is empty you should call the admin view and send the data for message as NULL.

Ben feryat bir örnek gönderin:

View Admin: (Post Directly to the admin function in controller)

<html>
(...)
<body>

<?php echo $message_response; ?>

<form method="post" action="<domain>/index.php/admin" />
   <imput (...)     
</form>

</html>

Controller:

function admin() 
{
   if (isset($_POST['fieldname']))
        $data['message_response']=$this->save_data_in_database($params...);
   else
        $data['message_response']=NULL;       

  $this->load->view('admin', $data);  
}


function save_data_in_database($params...)
{

(save data to database etc...)

return (...message_to_display...);

}

Best Regards,
Pedro