2011-12-20 14 views
6

मैं अपने उपयोगकर्ता को किसी विशेष कार्य के बाद पिछले पृष्ठ पर रीडायरेक्ट करने के लिए निम्न कोड का उपयोग कर रहा हूं।पिछले पृष्ठ पर रीडायरेक्ट करते समय परिवर्तनीय डेटा कैसे भेजें

 if (isset($_SERVER['HTTP_REFERER'])) 
     { 
     $this->session->set_userdata('previous_page', $_SERVER['HTTP_REFERER']); 
     } 
     else 
     { 
     $this->session->set_userdata('previous_page', base_url()); 
     } 

ऊपर कोड मैं एक नियंत्रक में उपयोग करें और अन्य नियंत्रक में निम्न कोड ..

.... some other stuffs... I am updating database values here.... 

     $this->db->where('t_expenseid', $t_expenseid); 
     query=$this->db->update('teacherexpense', $data); 


     redirect($this->session->userdata('previous_page')); 

उपरोक्त कोड ठीक काम कर रहा है, लेकिन समस्या का सामना करना पड़ रहा हूँ मैं एक सफलता भेजना चाहते हैं रीडायरेक्ट के साथ संदेश ताकि जब पिछला पृष्ठ एक सफल संदेश लोड करता है तो पॉप अप हो जाता है (मेरे पास पहले से ही jquery है)। और इसके लिए मैंने रीडायरेक्ट के ऊपर निम्न कोड जोड़ा, लेकिन मुझे नहीं पता कि रीडायरेक्ट के साथ $ डेटा या संदेश कैसे भेजना है। और यदि मैं इसे पिछले पृष्ठ के नियंत्रक में मान को पुनर्प्राप्त करने में सक्षम हूं, तो भेज सकता हूं।

$data['msg']='Information Has been Successfully Inserted'; 

क्या आप कृपया मुझे बता सकते हैं कि इसे कैसे भेजना है और फिर इसे पुनर्प्राप्त करना है?

धन्यवाद :)

उत्तर

10

आप set_flashdata उपयोग कर सकते हैं

यहाँ कैसे आप इसका इस्तेमाल होता है सीआई का उपयोग करें। आप केवल एक बार उपयोग कर सकते हैं कि संदेश ताज़ा करने के बाद संदेश खाली हो जाता है।

$this->session->set_flashdata('message', 'Authentication failed'); 

    redirect(site_url('message/index/'), 'refresh'); 

और उस पृष्ठ पर आप द्वारा

$message = $this->session->flashdata('message'). 
+0

यह काम इस संदेश को पकड़ कर सकते हैं, धन्यवाद मैं इस लिए देख रहा था :) – Troubleshooter

+0

हम फ्लैश के माध्यम से संदेश मिलता था, लेकिन हम ऑटो उत्पन्न संदेश खो दिया "validation_errors()" द्वारा, क्या हमारे स्वयं के संदेश लिखने के बजाय उन्हें पकड़ने का कोई तरीका है? –

2

flashdata है, जो आम तौर पर स्थितियों में, जहां आप एक पृष्ठ पर रीडायरेक्ट और संदेश प्रदर्शित करना चाहते हैं में प्रयोग किया जाता है उपयोग पर विचार करें। ध्यान रखें कि संदेश केवल एक बार प्रदर्शित किया जाएगा। यदि उपयोगकर्ता पृष्ठ को रीफ्रेश करता है तो संदेश गायब हो जाएगा।

$this->db->where('t_expenseid', $t_expenseid); 
query = $this->db->update('teacherexpense', $data); 

// set flashdata 
$this->session->set_flashdata('message', 'Information Has been Successfully Inserted'); 

redirect($this->session->userdata('previous_page')); 

फिर "पिछले पृष्ठ" में यदि वह मौजूद है तो आपको एक संदेश के लिए जाँच करें और इसे प्रदर्शित कर सकता है:

// get flashdata 
$message = $this->session->flashdata('message'); 

if ($message) { 
    // pass message to view, etc... 
} 
संबंधित मुद्दे