2011-06-06 12 views
29

तो मेरे पास पैराग्राफ तत्वों का एक गुच्छा है जो गतिशील रूप से डीबी से पॉप्युलेट किए जाते हैं। मैंने तत्वों को संतुष्ट किया है। अब मैं मानक फॉर्म सबमिशन के माध्यम से डीबी को संपादन सबमिट करना चाहता हूं। क्या संतुष्ट तत्वों को वापस पोस्ट करने का कोई तरीका है?एचटीएमएल 5 का उपयोग करके, मैं प्रपत्र जमा करने में सामग्री योग्य फ़ील्ड का उपयोग कैसे करूं?

उत्तर

32

आप जावास्क्रिप्ट एक ही रास्ता या अन्य उपयोग करने के लिए, के रूप में यह एक पाठ क्षेत्र या तरह के साथ होता है यह एक "मानक" प्रपत्र तत्व के रूप में काम नहीं करेगा की है। यदि आप चाहें, तो आप अपने फॉर्म के भीतर एक छिपी हुई टेक्स्टरेरा बना सकते हैं, और फॉर्म के ऑनबूट फ़ंक्शन में सामग्री के आंतरिक HTML को टेक्स्टटेरा के मान पर कॉपी कर सकते हैं। वैकल्पिक रूप से आप सामग्री को थोड़ी अधिक मैन्युअल रूप से सबमिट करने के लिए AJAX/xmlHttpRqeuest का उपयोग कर सकते हैं।

function copyContent() { 
    document.getElementById("hiddenTextarea").value = 
     document.getElementById("myContentEditable").innerHTML; 
    return true; 
} 


<form action='whatever' onsubmit='return copyContent()'>... 
+0

ऐसा लगता है कि 'innerText' का उपयोग करना बेहतर है, या आप टेक्स्ट अराजकता में सभी अदृश्य मार्कअप डाल देंगे। –

+0

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

1

आप jQuery का उपयोग करते हैं, तो आप सामग्री एक .click() घटना के साथ आपके क्लिक समारोह के बाद एक सर्वर साइड स्क्रिप्ट के लिए यह इन का उपयोग करके प्रस्तुत कर सकता है (यानी "सहेजें" या "सबमिट करें" ...)

अपने डेटाबेस में डालने के लिए एक AJAX "पोस्ट"।

Example

+2

आपका लिंक मर चुका है। यदि आप उस लिंक के पीछे मौजूद सामग्री को किसी भी तरह से बचा सकते हैं और अपनी पोस्ट में संपादित कर सकते हैं, तो यह बहुत ही अच्छा होगा। यदि नहीं, तो कृपया लिंक हटाएं और अपना जवाब आकार में संपादित करें। – rene

0

क्या इसे मानक फॉर्म सबमिशन होना आवश्यक है? यदि आप इनपुट के साथ किसी फॉर्म का उपयोग नहीं करना चाहते हैं या नहीं चाहते हैं, तो आप AJAX (XMLHttpRequest + FormData) आज़मा सकते हैं, जिसके माध्यम से आप एसिंक्रोनस अनुरोध कर सकते हैं और बेहतर तरीके से नियंत्रण कैसे दिखा सकते हैं।

यदि आप इसे और भी सरल बनाना चाहते हैं, तो jQuery के $.ajax फ़ंक्शन ($.get और $.post) का प्रयास करें। यह सरल जेएस ऑब्जेक्ट्स का उपयोग कर डेटा भेजता है।

+0

फॉर्मडेटा के साथ काम कर रहे एक्सएचआर का एक उदाहरण: https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects –

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

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