2014-06-05 11 views
6

मैं अनुरोध के साथ एक क्षेत्र मूल्यसंपर्क फ़ॉर्म 7 सेट फ़ील्ड मान

example.com/subscribe/?email=asfafs

सेट करना चाहते हैं, लेकिन जब मैं पृष्ठ लोड जिस पर इसका फॉर्म है, फॉर्म नहीं दिखाता है। मुझे लगता है कि यह क्यों नहीं दिखाया जा सका। क्योंकि फॉर्म स्वयं भी एक अनुरोध अनुरोध जमा कर सकता है। मैंने this प्लगइन भी स्थापित किया है जो मुझे फ़ील्ड मान सेट करने में सक्षम होना चाहिए, लेकिन ऐसा नहीं है।

<p>Uw naam (verplicht)<br /> 
    [text* input-name] </p> 

<p>Uw email (verplicht)<br /> 
    [dynamictext dynamicname "CF7_GET key='email'"] </p> 
<p>Onderwerp<br /> 
    [text your-subject] </p> 

<p>Uw bericht<br /> 
    [textarea your-message] </p> 

<p>[submit "Verzenden"]</p> 

मेरा पेज में:

<?php echo do_shortcode('[contact-form-7 id="1062" title="Contactformulier 1"]'); ?> 

मैं इस के लिए एक अलग प्लगइन का उपयोग कर कोई फ़र्क नहीं पड़ेगा

इस मैं क्या है। अगर कोई मेरी आवश्यकताओं के अनुरूप है तो कृपया मुझे बताएं।

+0

आप और अधिक विस्तार से बता सकते हैं? –

+0

मैंने अपना प्रश्न थोड़ा बदल दिया। मुझे उम्मीद है कि अब यह और अधिक स्पष्ट है। –

+1

आप इस प्लगइन को देख सकते हैं http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/ –

उत्तर

6

मैंने अभी प्लगइन स्थापित किया है जिसे आपने लिंक किया है और इसका परीक्षण किया है। प्लगइन संपर्क फ़ॉर्म 7 के भीतर किसी फ़ील्ड के लिए जीईटी वैरिएबल में खींचने के लिए नहीं है। प्लगइन दो चीजें करेगा

  1. यह $ _GET चर पकड़ लेगा और इसके साथ एक छिपे हुए क्षेत्र को बनाएगा।
  2. यह (सिर्फ पाठ के रूप में, एक क्षेत्र नहीं में) पृष्ठ पर चर

शोर्ट आप अपने उदाहरण में है कि इस http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/ प्लगइन द्वारा उपयोग के लिए है दिखाएगा। मैंने उस प्लगइन को भी डाउनलोड और परीक्षण किया, और ऐसा लगता है कि यह ठीक काम करता है।

यहां वह पृष्ठ है जिस पर मैंने उदाहरण बनाया था। http://jtwebb.com/stackoverflow-question/?someemail=asdf यदि आप देखना चाहते हैं कि यह गतिशील-टेक्स्ट-एक्सटेंशन प्लगइन के साथ काम कर रहा है।

अद्यतन:

<p>Your Name (required)<br /> 
    [text* your-name] </p> 

<p>[showparam someemail] <-- this is the shortcode of show param, just text no field</p> 

<p>[getparam someemail] If you inspect this you'll see a hidden get field with the value of 'someemail' in it.</p> 

<p>Your Email (required)<br /> 
    [dynamictext* dynamictext-380 "CF7_GET key='someemail'"]<br>This field was created with <a href="http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/">http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/</a></p> 

<p>Subject<br /> 
    [text your-subject] </p> 

<p>Your Message<br /> 
    [textarea your-message] </p> 

<p>[submit "Send"]</p> 
+0

धन्यवाद। मैंने खुद को यह समझ लिया। मुझे बस डायनामिक टेक्स्ट एक्सटेंशन प्लगइन के कोड को थोड़ा सा ट्विक करना पड़ा। –

3

मैं जानता हूँ कि इस सवाल पहले से ही उत्तर दिया गया है, लेकिन एक समाधान है जो एक प्लगइन की आवश्यकता नहीं है की तलाश में किसी के लिए भी मैं ऐसा करने का विकल्प चुना: यह मेरा संपर्क प्रपत्र 7 कोड है निम्नलिखित।

सबसे पहले मैंने वर्डप्रेस डैशबोर्ड के माध्यम से प्लगइन के भीतर से अपना फॉर्म बनाया। मैंने उस क्षेत्र को जोड़ा जो मैं यूआरएल से पैरामीटर पकड़ना चाहता था और इसे एक आईडी सौंपा था।

[text page-name class:form-control id:source minlength:2 maxlength:80]

अगला मैं एक लिंक है जो इतना

<a href='http://mycoolwebsite.com/contact?id=homepage'>Contact Us</a>

की तरह फार्म के लिए पैरामीटर पारित तब का उपयोग कर कुछ Javascript और JQuery मैं URL से id पैरामीटर मिलता है और यह तय करेगा जोड़ा रूप में मेरे इनपुट के लिए मूल्य के रूप में। (getParameterByName(name,url) समारोह इस जवाब से लिया गया है: How can I get query string values in JavaScript?)

function getParameterByName(name, url) { 
    if (!url) url = window.location.href; 
    url = url.toLowerCase(); 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 
var param = getParameterByName('id'); 
jQuery('#source').hide(); 
jQuery('#source').prop('disabled', true); 
jQuery('#source').attr('value', param); 
jQuery('#source').val(param); 

मैं भी छिपाने के लिए और इसलिए यह नहीं देखा जाता है इनपुट क्षेत्र को अक्षम करें और बदला नहीं जा सकता (आसानी से)।मैं भी CSS

#source{visibility:hidden}

इस तरह मैं अपनी साइट के भीतर किसी भी जहां से फार्म के लिए लिंक और की, जहां व्यक्ति से आया स्रोत संलग्न करें और ईमेल है कि मैं पाने में रख सकते हैं का उपयोग कर इनपुट क्षेत्र को छिपाने ।

मुझे इस विधि के साथ कोई समस्या नहीं दिख रही है और यह प्लगइन का उपयोग करने की आवश्यकता को हटा देता है। मुझे यकीन है कि जावास्क्रिप्ट पर निर्भर रहने के लिए आदर्श नहीं है लेकिन समान रूप से यह आपकी साइट पर कई प्लगइनों का उपयोग करने के लिए आदर्श नहीं है क्योंकि वे बहुत जल्दी हो सकते हैं और अक्सर एक-दूसरे के बीच संघर्ष कर सकते हैं।

आशा है कि इससे किसी को भी वैकल्पिक विकल्प की तलाश करने में मदद मिलेगी। मैं इस तरह से लोगों की राय जानना चाहता हूं क्योंकि मैं इसे सुधारने के सुझावों के लिए खुला हूं।

2

[text* your-name default:get] फ़ील्ड GET वैरिएबल से उसी नाम ("आपका नाम") से अपना डिफ़ॉल्ट मान प्राप्त करेगा। एक अतिरिक्त क्वेरी स्ट्रिंग के साथ फार्म के पेज के URL तक पहुंच कर इस प्रयास करें:

http://example.com/contact/?your-name=John+Smith

लेकिन अगर आप एक ही फार्म टैग में दो या अधिक डिफ़ॉल्ट विकल्प है? के लिए इस प्रपत्र-टैग के मामले पर विचार करें:

[text* your-name default:get default:post_meta "Your Name"]

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