2011-02-28 22 views
5

वर्डप्रेस में अपना स्वयं का अनुकूलित रूप है।वर्डप्रेस फॉर्म एक्शन सबमिट

action=<?php bloginfo('template_url'); ?>/send_form.php" 
पर

सबमिट करते हैं, यह हमेशा send_form.php को जाता है, लेकिन इस php जानकारी भेजने के लिए है - और मैं विषय के साथ साथ शैली नहीं कर सकते ....

वहाँ एक रास्ता पर रहने के लिए है वर्तमान पृष्ठ जबकि यह उस क्षेत्र में जानकारी भेजता है और प्रिंट करता है और संदेश भेजता है जिसे फ़ॉर्म सफलतापूर्वक भेज दिया गया है ???

किसी के पास मेरे लिए कुछ सुझाव है?

उत्तर

9

इसका जवाब काफी शामिल और इसे सही रूप में एक छोटे से ख्याल रखता है, लेकिन यहाँ एक दृष्टिकोण के आवश्यक अंक हैं:

  1. कार्रवाई वर्तमान पृष्ठ लोड करने के लिए सेट किया जाना चाहिए और आप कर सकते हैं में action विशेषता को बदलकर action=""
  2. इस पृष्ठ के लिए टेम्पलेट फ़ाइल में, यह पता लगाएं कि फ़ॉर्म सबमिट करने के बाद पृष्ठ लोड होता है। आप $_POST variable की स्थिति की जांच करके ऐसा कर सकते हैं।
  3. यदि पोस्ट चर हैं, तो टेम्पलेट फ़ाइल में फ़ॉर्म सबमिशन को संसाधित करें। आपको क्या करना है यह जानने के लिए आपको "send_form.php" में क्या होता है यह देखने की आवश्यकता है। ध्यान रखें कि आप सुरक्षा मुद्दों को पेश नहीं करते हैं (उदाहरण के लिए एनओएनसीई का उपयोग करना सुनिश्चित करें)।
  4. पोस्ट चर से छुटकारा पाने के लिए उसी पृष्ठ पर वापस रीडायरेक्ट करें। यदि आप ऐसा नहीं करते हैं तो लोग "वे फ़ॉर्म को पुनः सबमिट करना चाहते हैं" चेतावनी संदेश प्राप्त करेंगे। रीडायरेक्ट करने के लिए PHP header() function देखें और ध्यान दें कि पृष्ठ पर किसी आउटपुट को भेजने से पहले यह होना चाहिए।
  5. "फॉर्म सबमिशन सफल" प्रदर्शित करने के लिए server sessions का उपयोग करें। रीडायरेक्ट से पहले अपने संदेश में एक सत्र चर सेट करें, फिर पेज लोड होने पर इसे पहचानें, इसे प्रदर्शित करें और इसे हटा दें ताकि अगली बार पेज लोड होने पर संदेश प्रदर्शित न हो।

जो आपको एक प्रारंभिक बिंदु देना चाहिए।

यदि किसी और के पास एक आसान समाधान है, तो मुझे यह भी सुनना अच्छा लगेगा।

+0

धन्यवाद! मैंने पाया कि अजैक्स इसका समाधान था। तो इस पर AJAX आज़माएं। – Cam

+2

यह सच है और मुझे इसका उल्लेख करना चाहिए था। विचार करने की एक बात यह है कि जावास्क्रिप्ट सक्षम किए बिना ब्राउज़र AJAX दृष्टिकोण का समर्थन नहीं करेंगे, इसलिए ऐसा होने पर आपको फ़ॉलबैक अनुभव के बारे में सोचना होगा। यह उपयोगकर्ताओं का एक छोटा सा% है और छोटा हो रहा है, इसलिए आपके यातायात के आधार पर यह कोई मुद्दा नहीं हो सकता है। – Greg

+1

हाँ यह सच है। % वास्तव में छोटा है, क्योंकि वर्तमान वेबसाइटों का 9 0% + jquery/scriptacluous का उपयोग करता है और इसी तरह। तो ऐसा नहीं लगता कि बहुत प्रभावित होगा – Cam

0

यदि आप विषय के बजाय प्लगइन के माध्यम से ऐसा करना चाहते हैं, तो "admin_post" (admin_post_YOUR_ACTION) और "admin_post_nopriv" (admin_post_nopriv_YOUR_ACTION) क्रियाओं का उपयोग करें। (Btw, आप उन कार्यों विषय के माध्यम से भी उपयोग कर सकते हैं)

यहाँ एक अच्छा विवरण है: मदद के लिए https://www.sitepoint.com/handling-post-requests-the-wordpress-way/

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