2011-11-25 13 views
18

वहाँ एलो में जावा चर चर,असाइन जावास्क्रिप्ट JSP

मैं एक जावा चर करने के लिए एक जावास्क्रिप्ट चर का मान असाइन करने की कोशिश कर रहा हूँ। लेकिन मुझे यह नहीं पता कि यह कैसे करें? उदाहरण के लिए कहते हैं कि मैं इस है:

<html> 
<head> 
    <script type="text/javascript"> 
     function return variable(){ 
      var a = "hello"; 
      return a; 
     } 
    </script> 
</head> 
<body> 

<% 
    //The java code 
    String b = //how do I get that javascript variable here? 
%> 

</body> 
</html> 
+3

यदि आप समझते हैं कि jsp कैसे काम करता है, तो आपको पता चलेगा कि जावा भाग सर्वर पर 'ब्राउज़र' में प्रदान किए जाने से पहले सर्वर पक्ष पर निष्पादित होता है। इसका अर्थ यह है कि किसी भी जावास्क्रिप्ट को निष्पादित करने का कोई मौका मिलने पर यह पहले ही निष्पादित हो चुका है। तो आपको यहां क्या करने की कोशिश कर रहे हैं पर पुनर्विचार करना होगा। –

+0

संभावित डुप्लिकेट: http://stackoverflow.com/questions/1944330/assigning-values-from-javascript-to-java-variable –

+0

संभावित डुप्लिकेट [मैं जेएसपी में स्क्रिप्टलेट में जावास्क्रिप्ट मान कैसे पास करूं?] (Http://stackoverflow.com/questions/5701031/how-do-i-pass-javascript-values-to-scriptlet-in-jsp) – cHao

उत्तर

17

जावा स्क्रिप्ट ब्राउज़र जहां जावा कोड सर्वर साइड बात है तो आप बस ऐसा नहीं कर सकते पर खेलता है।

आप क्या कर सकते फार्म जमा करने, या URL पैरामीटर का उपयोग कर या AJAX कॉल का उपयोग करके सर्वर से जावास्क्रिप्ट से गणना चर प्रस्तुत और उसके बाद आप इसे सर्वर पर उपलब्ध करा सकता है

एचटीएमएल

<input type="hidden" id="hiddenField"/> 

<form>

तहत यकीन है कि यह क्षेत्रों देता बनाने जावास्क्रिप्ट

document.getElementById("hiddenField").value=yourCalculatedVariable; 

सर्वर पर आप की request

+0

हम्म मैं देखता हूं .. क्योंकि सब कुछ जो मैं करने की कोशिश कर रहा हूं। जेएसपी में एक HTML फॉर्म है, और ऑनक्लिक ईवेंट के साथ यह जावास्क्रिप्ट विधि को ट्रिगर करता है जो तब एक चर देता है। फिर वह चर केवल शेष इनपुट इनपुट मानों के माध्यम से भेजा जा सकता है ... तो ऐसा करने का कोई तरीका नहीं है? – Tiwaz89

+0

आप इसे कुछ छिपे हुए फ़ील्ड में सेट कर सकते हैं और फिर आप फॉर्म सबमिशन पर भेज सकते हैं। –

+0

कुछ ऐसा है: <इनपुट प्रकार = "छुपा" मूल्य = "वापसीवर्तनीय()" नाम = "जावास्क्रिप्ट अक्षम" />? – Tiwaz89

0

मुझे लगता है कि है कि, यह एक बदसूरत वैकल्पिक हल है जब तक आप यूआरएल पर JavaScript वर का मान पास है, लेकिन ऐसा करने के लिए कोई रास्ता नहीं है।

1

आप एक JSP के जीवनचक्र के बारे में कुछ पढ़ने की जरूरत है एक भाग के रूप में इस मिलेगा। इस प्रयास करें: http://en.wikipedia.org/wiki/File:JSPLife.png

जावास्क्रिप्ट ग्राहक पर चलता है, लेकिन आदेश jsp बदलने के लिए, आप सर्वर तक पहुँच की आवश्यकता है। यह अजाक्स (http://en.wikipedia.org/wiki/Ajax_%28programming%29) के माध्यम से किया जा सकता है।

यहाँ कुछ अजाक्स संबंधित लिंक कर रहे हैं: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

0

आप नहीं कर सकते यह करना .. क्योंकि jsp संकलित और जबकि जावास्क्रिप्ट ग्राहक पक्ष पर निष्पादित किया जाता है एचटीएमएल सर्वर साइड में बदल जाती है। आप मान को एक छिपे हुए HTML तत्व पर सेट कर सकते हैं और अनुरोध में सर्वलेट को भेज सकते हैं, अगर आप

+0

आह जो सही है, मैं कर सकता हूं, यह अभी भी मेरी समस्या को हल करता है। इसलिए मैं इस तरह के छिपे हुए इनपुट प्रकार में मान सेट करूंगा: ? – Tiwaz89

+0

हाँ आप सही हैं, आपको विधि में इस तत्व का मान स्वयं सेट करना होगा और उस तत्व को फॉर्म के अंदर रखना होगा ताकि फ़ॉर्म सबमिट होने पर यूआरएल में जोड़ा जाएगा। –

0

के रूप में उपयोग करना चाहते हैं क्योंकि जावास्क्रिप्ट क्लाइंट पक्ष है और जेएसपी सर्वर पक्ष है। जब तक यह ब्राउज़र, जाता लेकिन जावा सर्वर पर निष्पादित

तो जावास्क्रिप्ट निष्पादित नहीं करता है। तो, जावा जावास्क्रिप्ट चर के मान को नहीं जानता है।

लेकिन अगर आप JavaScript वैरिएबल के लिए जावा चर का मान असाइन करें।

1

उत्तर आप नहीं कर सकते हैं। जावा (आपके मामले में जेएसपी) एक सर्वर-साइड स्क्रिप्टिंग भाषा है, जिसका अर्थ है कि यह सभी जावास्क्रिप्ट कोड से पहले संकलित और निष्पादित किया गया है। आप जेएसपी वैरिएबल को जावास्क्रिप्ट वैरिएबल असाइन कर सकते हैं लेकिन दूसरी तरफ नहीं। यदि संभव हो, तो हो सकता है कि आप एक क्वेरीरीस्ट्रिंग में चर दिखाई दे या इसे किसी फ़ॉर्म (एक छिपे हुए क्षेत्र के माध्यम से) के माध्यम से पास कर सकें, इसे पोस्ट करें और उस तरह से जेएसपी के माध्यम से चर निकालें। लेकिन इसके लिए पेज को पुनः सबमिट करने की आवश्यकता होगी।

उम्मीद है कि इससे मदद मिलती है।

1

जावास्क्रिप्ट को क्लाइंट साइड पर निकाल दिया गया है और जेएसपी सर्वर-साइड पर है। तो मैं कह सकता हूं कि यह असंभव है।

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