2012-08-08 17 views
11

स्वीकार करने के बाद क्लिक करें, ठीक है, मेरे पास रिपोर्ट के लिंक के साथ एक पृष्ठ है। जब भी कोई एक रिपोर्ट पर क्लिक करता है, तो वे एक्सेल फ़ाइल डाउनलोड कर सकते हैं। हालांकि, कभी-कभी रिपोर्ट करने के लिए कोई फ़ील्ड नहीं होती है; उस स्थिति में, मैं एक चेतावनी संदेश प्रदर्शित करना चाहता हूं और "स्वीकृति" पर क्लिक करने के बाद, वे मुख्य पैनल पर रीडायरेक्ट हो जाते हैं। जब वे रिपोर्ट पर क्लिक करते हैं, तो वे डेटा प्राप्त करने के लिए switch का उपयोग करने वाले नियंत्रक पर जाते हैं। यदि कोई डेटा नहीं है, तो मॉडल FALSE लौटाता है; इसलिए नियंत्रक के अंत में, मैं जाँच:स्वीकृति चेतावनी संदेश और

if ($result_array != FALSE) 
    to_excel($result_array->result_array(), $xls,$campos); 
else { 
    echo "<script>alert('There are no fields to generate a report');</script>"; 
    redirect('admin/ahm/panel'); 
} 

अगर मैं redirect('admin/ahm/panel'); तो चेतावनी काम करता है से छुटकारा पाने के, लेकिन यह पेज कि एक्सेल फाइल उत्पन्न करने वाला था करने के लिए उपयोगकर्ता से चलता है। लेकिन अगर मैं रीडायरेक्ट का उपयोग करता हूं, तो नियंत्रक उपयोगकर्ता को अलर्ट दिखाए बिना मुख्य पैनल में ले जाता है।

किसी भी मदद की सराहना की जाती है।

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

+0

पुनर्निर्देशन पहले, रीडायरेक्ट करने के लिए कि एक चेतावनी दिखाने की जरूरत है। – kevin628

उत्तर

39
echo "<script> 
alert('There are no fields to generate a report'); 
window.location.href='admin/ahm/panel'; 
</script>"; 

और नीचे redirect लाइन से छुटकारा पाने के।

आप दो अलग-अलग दुनिया को मिला रहे थे।

+0

इसके साथ कोई समस्या है। यह सिर्फ यूआरएल जोड़ता है जिसे मैं वर्तमान यूआरएल में जाना चाहता हूं। लेकिन यह रीडायरेक्ट नहीं करता है। मैंने पूरे यूआरएल (http: // के साथ) का उपयोग करने का भी प्रयास किया और फिर भी यह रीडायरेक्ट नहीं करता है; बस इसे वर्तमान यूआरएल में जोड़ता है और मैं एक अंतहीन चेतावनी पाश पर फंस जाता हूं। – fedejp

+0

संपादित। बदल दिया '+ =' से '='। इससे पहले मैंने विशेष रूप से वर्तमान यूआरएल में जोड़ा क्योंकि मैंने सोचा था कि आप इसे चाहते हैं। लेकिन वैसे भी, अब काम करना चाहिए। – Prasanth

+0

यह सुरक्षित नहीं है, जावास्क्रिप्ट को अक्षम करने से आगे की प्रक्रिया जारी रहेगी। – Ranhot

1

redirect फ़ंक्शन आउटपुट बफर को साफ़ करता है और header('Location:...'); पुनर्निर्देशन करता है और स्क्रिप्ट निष्पादन से बाहर निकलता है। जिस हिस्से को आप गूंजने का प्रयास कर रहे हैं वह कभी भी आउटपुट नहीं किया जाएगा।

आपको या तो डाउनलोड पेज पर सूचित करना चाहिए या उस पृष्ठ पर सूचित करना चाहिए जिसे आप लापता डेटा के बारे में रीडायरेक्ट करते हैं।

2

CodeIgniter और जावास्क्रिप्ट का मेल:

//for using the base_url() function 
$this->load->helper('url'); 

echo "<script type='javascript/text'>"; 
echo "alert('There are no fields to generate a report');" 
echo "window.location.href = '" . base_url() . "admin/ahm/panel';" 
echo "</script>"; 

नोट:redirect() समारोह स्वचालित रूप से base_url पथ है यही कारण है कि यह वहाँ की आवश्यकता नहीं थी भी शामिल है।

0
echo "<script> 
window.location.href='admin/ahm/panel'; 
alert('There are no fields to generate a report'); 
</script>"; 

इस तरह से यह काम करता है बाहर का प्रयास करें ...

पहले नया पृष्ठ जहां चेतावनी बॉक्स तो प्रदर्शित किया जाना चाहिए चेतावनी बॉक्स दिखाने के साथ खिड़की आवंटित।

0

जो काम करता है लेकिन इसे इस तरह से आजमाएं।

गूंज " चेतावनी ('एक रिपोर्ट उत्पन्न करने के लिए कोई फ़ील्ड हैं');

window.location.href = 'व्यवस्थापक/ahm/पैनल';

";

शीर्ष तो स्थान पर अगले

4

उपयोग इस कोड को चेतावनी पेज

echo "<script>alert('There are no fields to generate a report');document.location='admin/ahm/panel'</script>"; 
0

इस तरह पेज पर आप रीडायरेक्ट उसे सूचित कर

works`
if ($result_array) 
    to_excel($result_array->result_array(), $xls,$campos); 
else { 
    echo "<script>alert('There are no fields to generate a report');</script>"; 
    echo "<script>redirect('admin/ahm/panel'); </script>"; 
}` 
संबंधित मुद्दे