coldfusion - रपत - यह पेज देखने के लिए javascript सक्षम की जानी चाहिए



क्या मैं जावास्क्रिप्ट में कोल्डफ्यूजन टैग का उपयोग कर सकता हूं? (1)

लंबा संस्करण: http://blog.adamcameron.me/2012/10/the-coldfusion-requestresponse-process.html

लघु संस्करण: नहीं, आप इसे सही नहीं कर रहे हैं।

मध्य-आकार की स्टैक ऑवरफ्लो-फ्रेंडली वर्जन: सीएफएमएल कोड एक अनुरोध के सर्वर साइड पर चलता है; जावास्क्रिप्ट क्लाइंट ब्राउज़र पर चलता है और यह स्पष्ट होने के लिए: ColdFusion सर्वर सीधे ब्राउज़र से कभी भी संप्रेषित नहीं होता है: बीच में एक वेब सर्वर है क्लाइंट ब्राउज़र एक फाइल के लिए अनुरोध करता है, वेब सर्वर को। CFF अनुरोधों को कोल्डफ्यूज़ेशन सर्वर को पास करने के लिए कॉन्फ़िगर किया गया है, और यह उसके कोड चलाता है, जिसके परिणामस्वरूप स्ट्रिंग लौटते हैं (जैसे: एक HTML वेब पेज) जो उस वेब सर्वर पर देता है, जो तब देता है ब्राउज़र। उस HTML में जावास्क्रिप्ट (इनलाइन या बाहरी अनुरोध के रूप में) शामिल हो सकता है जो ब्राउज़र तब निष्पादित करेगा।

उम्मीद है कि आप देख सकते हैं कि सर्वर-साइड कोड और क्लाइंट-साइड कोड के बीच कोई प्रत्यक्ष संपर्क नहीं है।

आपके पास दो सुविधाएं हैं जो कि आपस में अतिक्रोनिक रूप से दो संचार करने के लिए मिलती हैं। सबसे पहले: सीएफएमएल कोड पाठ लिखता है, लेकिन वह पाठ जेएस हो सकता है जो ब्राउज़र तब चलाता है जब अंत में इसे प्राप्त होता है कुछ इस तरह:

<cfset msg ="G'day world">
<script>alert("<cfoutput>#msg#</cfoutput>");</script>

एक बार सीएफएमएल सर्वर ने संसाधित किया है, ब्राउज़र को वापस क्या भेजा जाता है:

<script>alert("G'day world");</script>

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

यदि आपको सर्वर पर वापस संचार करने के लिए क्लाइंट पर जेएस कोड का उपयोग करने की आवश्यकता है, तो आपका एकमात्र (वास्तविक) सहारा सर्वर पर एक और सर्वर साइड प्रोसेसिंग और सर्वर के लिए क्लाइंट-साइड जानकारी पास करने के लिए सर्वर पर एक AJAX अनुरोध वापस करने के लिए है कुछ के साथ प्रतिक्रिया करने के लिए यह आपके प्रश्न का दायरा है कि यह कैसे सबसे अच्छा करने के लिए समझाने के लिए है, लेकिन ऐसा करने के लिए वहां जानकारी का एक टन है।

सीएफएमएल आपको "एचटीएमएल" और "जेएस" लिखने के लिए कुछ "जादूगर" प्रदान करता है, लेकिन यह पूरी तरह से समाप्त करने के लिए यह एक बुरा तरीका है, इसलिए मैं इसकी सिफारिश नहीं करूँगा। हालांकि मैं आपको एक ऐसी परियोजना के बारे में बताता हूं जो HTML / JS / CSS समाधानों को इनबिल्ट सीएफएमएल विज़ार्ड के लिए प्रदान करता है: https://github.com/cfjedimaster/ColdFusion-UI-the-Right-Way

लघु उत्तर पर वापस: नहीं, आप जो बहुत अच्छे कारणों से करने के लिए तैयार नहीं कर सकते, लेकिन यदि आप अपना दृष्टिकोण सुधारते हैं, तो आप अपने इच्छित सिरे को प्राप्त कर सकते हैं।

आपको देखने की आवश्यकता है कि <cfquery> (jQuery के जरिये यह बहुत आसान बना देता है) के माध्यम से फार्म फ़ील्ड को वापस कर रहा है, और एक अलग अनुरोध में अपना <cfquery> कोड <cfquery>

अगर आपने पढ़ा है कि उस ब्लॉग लेख को मैंने पढ़ा था (खुलासा: मैंने इसे लिखा था, लेकिन मैंने इसे विशेष रूप से ऐसी स्थितियों के लिए लिखा था), तो आप समझेंगे कि क्यों

यदि आप अपने समाधान के हिस्से पर कार्य करते समय फंस जाते हैं: किसी भी हिस्से पर आप जो भी अटक जाते हैं, उस पर एक और प्रश्न अधिक ध्यान केंद्रित करें।

क्या मैं जावास्क्रिप्ट में कोल्डफ्यूजन टैग का उपयोग कर सकता हूं? उदाहरण के लिए:

 <script language="javascript" type="text/javascript">
   function validateUser() {
    var userName = document.getElementById("username");

 <CFQUERY DATASOURCE="mydatasourcename" NAME="getUser">
  select USER_ID,COUNT(*) from  user u 
 where u.firstname=userName;
  </CFQUERY>
 <cfif getUser.recordCount EQ 0>
   <!--- Show eroor message --->
   <cfelse>
    <!--- Assign userId to hidden field --->
    document.getElementById("userid").value=#USER_ID#
  </cfif>   
    }
 </script>

<input type='textbox' name='username' id='username' onblur=validateUser()/>
<input type='hidden' name='userid' id='userid'/>

जब अंतिम उपयोगकर्ता अपने उपयोगकर्ता नाम में प्रवेश करता है, तो मैं डेटाबेस में जांचना चाहता हूं यदि यह उपयोगकर्ता नाम मौजूद है या नहीं। अगर यह मौजूद है, तो मुझे यूजियड को छुपा क्षेत्र में रखना होगा या फिर किसी त्रुटि को फेंकना होगा।

क्या मैं यह सही ढंग से कर रहा हूं? अगर यह गलत है, क्या आप सही तरीके से सुझाव दे सकते हैं?