2015-03-23 5 views
5

मैं अपनी साइट के लिए एक opencart मॉड्यूल का निर्माण कर रहा हूँ और एक पृष्ठ है कि मैं एक की जरूरत है में इस पद के लिए बटन 'ताज़ा' और एक बटन है, जहां मैं या तो खुद के लिए पोस्ट 'जारी रखें' (के मामले में बटन 'ताज़ा' या 'जारी रखने के लिए' बटन के साथ bespoke2.php करने के लिए। मैं नियंत्रक और नीचे विचारों जोड़ दिया है। दुर्भाग्य से जब जारी रखने के लिए बटन क्लिक किया है तो सही पृष्ठ पर पुनः निर्देशित करने के बाद चर इसके साथ नहीं आते हैं लेकिन रीफ्रेश बटन अच्छी तरह से काम करता है। क्या कोई मुझे बता सकता है कि मैं कहां गलत हो रहा हूं, मैंने इसके साथ घूमने में घंटों बिताए हैं और फोरम की खोज की है और Google बहुत ज्यादा नहीं आया है?पुनर्निर्देशन और opencart

यह फ़ॉर्म है .php

<form name="frm" method="POST" action=""> 
<input type="text" name="size_width"> 
<input type="submit" name="submit1" class= "button" Value="<?=$button_continue?>" /> 
<input type="submit" name="submit2" class= "button" Value="<?=$button_refresh?>" /> 

यह controller.php

if (isset($this->request->post['submit1'])) { 
$this->response->redirect($this->url->link('module/bespoke2')); 
} elseif (isset($this->request->post['submit2'])) { 
$this->data['input_width'] = ($this->request->post['size_width']); 
else{} 

यह

$this->data['input_width'] = ($this->request->post['size_width']); 

bespoke2.php नियंत्रक के लिए कोड रीडायरेक्ट भर में पोस्ट नहीं ले रहा है क्या है? किसी भी मदद की बहुत सराहना की।

उत्तर

0

नहीं, मैं रीडायरेक्ट करेगा 'फिर से पोस्ट' फॉर्म चर नहीं लगता। रीडायरेक्ट की क्वेरी स्ट्रिंग में मैन्युअल रूप से चर जोड़ने के लिए एक त्वरित फिक्स हो सकता है।

if (isset($this->request->post['submit1'])) { 
    $this->response->redirect($this->url->link('module/bespoke2?size_width=' . $this->request->post['size_width'])); 
} elseif (isset($this->request->post['submit2'])) { 
    $this->data['input_width'] = $this->request->post['size_width']; 
else { } 

तो आप इस प्रकार bespoke2.php में इसे पुनः प्राप्त कर सकते हैं:

$this->data['input_width'] = $this->request->get['size_width']; 

अगर आपको लगता है कि मैं मैन्युअल रूप से सही करने के लिए प्रत्यक्ष ajax के माध्यम से डेटा पोस्टिंग पर गौर करता हूँ विशेष रूप से संतोषजनक है नहीं लगता है पुनर्निर्देशन के बजाय नियंत्रक।

+0

केवल समस्या से गुजरती हैं, और यह एक छोटे से एक है, तो वह यह है कि इसमें जोड़ने के लिए कुछ पोस्ट चर हैं। मैंने केवल उदाहरण को सरल बनाने के लिए एक दिखाया, इसलिए मैं इसे मैन्युअल रूप से करने की उम्मीद नहीं कर रहा था। – Davetoff

+0

..... भी मैं एक अस्थायी हैडर का उपयोग कर रीडायरेक्ट का उपयोग करके पोस्ट में कामयाब रहे, लेकिन इस Opencart के माध्यम से काम करना चाहता हूँ प्रतीत नहीं होता है। – Davetoff

+0

अच्छी तरह से आप क्वेरी स्ट्रिंग को बनाने के लिए '$ this-> request-> post' के माध्यम से लूप को फ़ोरैच लूप का उपयोग कर सकते हैं, लेकिन मुझे लगता है कि नीचे की रेखा यह है कि आप सशर्त रूप से दो अलग-अलग यूआरएल में एक फॉर्म पोस्ट करने की कोशिश कर रहे हैं जो' टी वास्तव में काम करने का इरादा नहीं है, इसलिए आप जो कुछ भी करते हैं वह हैक का थोड़ा सा होने वाला है ... एक और संभावना जावास्क्रिप्ट या jquery का उपयोग करने से पहले फ़ॉर्म की एक्शन विशेषता को अपडेट करने के लिए हो सकती है ताकि वह सबमिट हो सके कौन सा बटन दबाया जाता है इसके आधार पर एक अलग यूआरएल। – jx12345

0

OpenCart सफलता संदेशों जैसे जैसे रीडायरेक्ट वाले सत्र डेटा का उपयोग करता है। यह आपकी स्थिति के लिए भी काम कर सकता है।

$this->session->data['input_width'] = $this->request->post['size_width']; 
1

मान लिया जाये कि आप jQuery उपलब्ध आप प्रस्तुत करने से पहले 'url_to_submit_to' अद्यतन करने के लिए निम्नलिखित (यह दृश्य के अंत में जोड़ने) इस्तेमाल कर सकते हैं (आप स्थापित opencart एक डिफ़ॉल्ट के साथ होना चाहिए जो)।

<script> 
    $("input[name=submit1]").click(function(event) { 
    event.preventDefault(); 
    $('form[name=frm]').attr('action', '/url_to_submit_to').submit(); 
    }); 
</script> 
+0

मैंने इसे जोड़ा है, इसने पोस्ट को अगले पृष्ठ पर भेजा है और यह एक इलाज है । सहायता के लिए धन्यवाद। – Davetoff

+0

कोई समस्या नहीं, खुशी है कि यह आपके लिए काम करता है। – jx12345

0

ओपन

/catalog/controller/account/register.php 

बदलें

$this->redirect($this->url->link('account/customregister', '', 'SSL')); 

कुछ समय आपके पास इस प्रकार के

$this->response->redirect($this->url->link('product/product', 'product_id=50', '')); 
+0

मुझे पूरा यकीन नहीं है कि आप यहां क्या मतलब रखते हैं, क्या आप चाहते हैं कि मैं "प्रतिक्रिया->" नोट में जोड़ने के लिए सिस्टम फ़ाइलों को बदलूं? यदि ऐसा है तो यह क्या करता है? – Davetoff

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