2011-10-28 11 views
7

मेरे पास एक ऐसा पृष्ठ है जिसमें कोई फॉर्म शामिल है और जब कोई उपयोगकर्ता इसे सबमिट करता है, तो डेटा नियंत्रक के पास जाता है और नियंत्रक सत्यापन को जांचता है, यदि कोई त्रुटि है तो यह उपयोगकर्ता को पिछले पृष्ठ पर रीडायरेक्ट करता है (जिस पृष्ठ में फॉर्म है), अन्यथा यह मॉडल को डेटा भेजता है।रीडायरेक्ट() के माध्यम से सत्यापन त्रुटि डेटा कैसे पास करें?

नियंत्रक से पिछले पृष्ठ पर रीडायरेक्ट करने के लिए (यदि कोई सत्यापन त्रुटि है), मैं निम्नलिखित कोड

 redirect($this->input->post('redirect')); 

उपरोक्त कोड ठीक काम कर रहा है, लेकिन यह पर रीडायरेक्ट के बाद समस्या है पिछला पृष्ठ (वह पृष्ठ जिसमें फ़ॉर्म है) यह सत्यापन त्रुटियों को प्रदर्शित नहीं कर रहा है।

तो क्या आप कृपया मुझे बताएं कि ऊपर दिए गए "रीडायरेक्ट" कोड के माध्यम से सत्यापन त्रुटि जानकारी को कैसे पास किया जाए और उस पृष्ठ पर सत्यापन त्रुटि संदेश दिखाएं?

अग्रिम धन्यवाद :)

समाधान:

मेरी नियंत्रक में:

$redirect=$this->input->post('redirect'); // << for this I have- <input name="redirect" type="hidden" value="<?= $this->uri->uri_string() ?>" />   in my view file 

    $this->session->set_flashdata('errors', validation_errors()); 
    redirect($this->input->post('redirect')); 

मेरे विचार फ़ाइल में:

<?php 

    if ($this->session->flashdata('errors')){ //change! 
    echo "<div class='error'>"; 
    echo $this->session->flashdata('errors'); 
    echo "</div>"; 
    } 

    ?> 

इस प्रकार मैं के माध्यम से सत्यापन त्रुटि डेटा पारित कर सकते हैं नियंत्रक से पिछले पृष्ठ पर रीडायरेक्ट करें

+1

एक नज़र http://stackoverflow.com/questions/2000621/codeigniter-how-to-redirect-properly-with-form-validation –

उत्तर

12

आप सीआई की सत्र पुस्तकालय से फ्लैशडाटा आज़मा सकते हैं। यह डेटा को अगले सर्वर अनुरोध के लिए उपलब्ध कराता है।

$this->session->set_flashdata('errors', validation_errors()); 

redirect($this->input->post('redirect')); 
+0

तुम कृपया मुझे बताओ कृपया चाहेंगे जहां वास्तव में मैं इस-रखना चाहिए ले लो $ this-> सत्र-> set_flashdata ('त्रुटियां', validation_errors()); अग्रिम धन्यवाद :) –

+0

बहुत बहुत धन्यवाद। मुझे समाधान मिला है। :) –

+0

मैंने रीडायरेक्ट करने के लिए कॉल से पहले set_flashdata() पर कॉल डाला। फिर यह उस पृष्ठ पर उपलब्ध है जो इसे रीडायरेक्ट करता है। – michaeljdennis

संबंधित मुद्दे