PDA

View Full Version : ارسال اطلاعات به تابع خاصی در کنترلر



هزاره سوم
پنج شنبه 07 فروردین 1393, 00:26 صبح
سلام
من یک لیست از اطلاعات دارم و جلوی هر کدوم لینکی هستی به اسم دیلیت که باید به تابع دیلیتی که خودم توی کنترلر نوشتم هدایت میشه و بعد از اون باید اون سطر پاک بشه
تابعی که در کنترلر نوشته شده نیاز دارد اطلاعات اون سطر که میخواهم حذفش کنم را داشته باشد..باقی مراحل درست عمل میکنند
تنها مشکل اینجاست که چطور این اطلاعات رو برای اون تابع بفرستم

بخش view :



<html> <head> <title>Show Links</title> </head> <body> <ul> <?php foreach ($query as $key): ?> <li><?php echo $key->file_name?> <a href="<?php echo base_url('index.php/upload/del'); ?>">Delete</a><br /></li> <?php endforeach; ?> </ul> <br /> <hr /> <a href="<?php echo base_url('index.php/upload/show_links'); ?>">refresh</a> </body></html>

همون طور که میبینید از طریق یک لینک به اون تابع ارجاع داده میشه ولی نمیتونم اون اطلاعات مد نظرم که در اینجا $key->file_name را براش بفرستم
دوستان اگر میشود راهنمایی بفرمایید

plague
پنج شنبه 07 فروردین 1393, 02:15 صبح
باید id اون سطر از جدول روبا لینک بفرستی به کنترلر
تو کنترلر هم میگی اون سطری که این آیدی رو داره پاک کنه


href="<?php echo base_url('index.php/upload/del'); ?>/<?php echo $ke->id; ?>"

هزاره سوم
پنج شنبه 07 فروردین 1393, 12:10 عصر
ممنون از راهنمایی تون
ولی این امکان پذیر نیست..اینجوری اطلاعات واسه اون تابع فرستاده نمیشه
طبق سرچی که داشتم همه این کد ها و عملیات ها باید سمت کنترلر انجام بشه و سمت ویو تنها نمایش داده بشه
پس همه رو در بخش کنترلر قرار دادم ..ولی باز در ارسال اطلاعات مشکل دارم

اینکه چه چیزی رو بفرستم نه...اینکه چجوری بفرستم و از اون طرف ازش استفاده کنم
این راهی که شما دادید باعث میشه آیدی در آخر لینک قرار بگیره...!!!
این رو ببینید در بخش کنترلر قرار دادم اینطور شده :



public function show_links(){ // $get=$this->My_Model->select_entry('*'); foreach($get->result() as $rows){ echo $rows->file_name.anchor("upload/del/echo $rows->file_name",'Delete').'<br/>'; } $this->load->view('show_links'); } public function del($data){ $this->My_Model->delete_entry($data); }

هزاره سوم
پنج شنبه 07 فروردین 1393, 12:15 عصر
ممنون از راهنمایی تون
ولی این امکان پذیر نیست..اینجوری اطلاعات واسه اون تابع فرستاده نمیشه
طبق سرچی که داشتم همه این کد ها و عملیات ها باید سمت کنترلر انجام بشه و سمت ویو تنها نمایش داده بشه
پس همه رو در بخش کنترلر قرار دادم ..ولی باز در ارسال اطلاعات مشکل دارم

اینکه چه چیزی رو بفرستم نه...اینکه چجوری بفرستم و از اون طرف ازش استفاده کنم
این راهی که شما دادید باعث میشه آیدی در آخر لینک قرار بگیره...!!!

کد در کنترلر :


public function show_links(){ // $get=$this->My_Model->select_entry('*'); foreach($get->result() as $rows){ echo $rows->file_name.anchor("upload/del/echo $rows->file_name",'Delete').'<br/>'; } $this->load->view('show_links'); } public function del($data){ $this->My_Model->delete_entry($data); }

plague
جمعه 08 فروردین 1393, 21:03 عصر
این روش ابداعی من نیست ! روش استانداردیه که در همه جای جهان مرسومه !!
شما هنوز اونجوری که باید مسلط نشدی ظاهرا

این که میگن عملیات باید در کنترلر انجام بشه درسته .... منظور از عملیات قسمت منطقی کد هستش
شما داده هات رو به ویو میفرستی (شامل سطر هایی که از دیتبایس خوندی )

اینکه آیدی رو در ته لینک قرار بدین چه ربطی به عملیات کنترلر داره که نمیخاید اونجا قرار بدین من نمیدونم !

یه تابع مینویسی به اسم delete توی کنترلرت



function delete($id=0){

$this->db->where('id' , $id)->delete('table')
}



بعد لینک میدی به این صورت


www.site.com/controller_name/delete/5

به شکل خلاصه بگم نیازی نیست همه اطلاعات یه سطر رو بفرستی به تابع برای دلیت یا هر عملیات دیگه ای !
کافیه شناسه رو بفرستی