2011-05-29 12 views
5
<form name="input" action=""> 
    <input type="text" name="say" /> 
    <input type="submit" value="send" /> 
</form> 

मैं वेब सॉकेट के माध्यम से सर्वर के लिए इस रूप में डेटा भेजने के लिए चाहते हैं, तो मैं socket.io उपयोग कर रहा हूँ।मैं वेबसाईट पर फॉर्म डेटा कैसे पास करूं? (Socket.io)

इसे प्राप्त करने का सबसे अच्छा तरीका क्या है? WebSocket से अधिक

var formdata = $('form').serialize(); 

फिर उस पारित:

+0

क्यों WebSocket यहाँ की कोशिश कर सकते हैं? यह क्लाइंट-सर्वर अनुरोध है, इसलिए सामान्य http अनुरोध काम करेगा। –

उत्तर

9

तुम इतनी तरह फार्म पर .serialize() उपयोग करने की आवश्यकता होगी। Node.js ओर, आप querystring.parse का उपयोग करके वापस एक जे एस वस्तु प्राप्त कर सकते हैं:

var querystring = require('querystring'); 
// Data is the data received from the client 
var result = querystring.parse(data); 
+0

यह अपलोड फ़ाइल अपलोड के साथ करता है? –

-1

आप इस

function getFormData2Object(form){ 
    var un_array = form.serializeArray(); 
    var _array = {}; 
    $.map(un_array, function(n, i){ 
     if(n.name.indexOf('[') > -1){ 
      var array = n.name.match(/\[(.*?)\]/); 
      var key = n.name.replace(array[1],"").replace('[',"").replace(']',""); 
      if(!_array[key]){ 
       _array[key] = {}; 
      } 
      _array[key][array[1]] = n['value']; 
     }else{ 
      _array[n['name']] = n['value']; 
     } 
    }); 
    return _array; 
} 
socket.emit('blablabla', getFormData2Object($("form"))); 

सौभाग्य :)

+0

अपने कोड के साथ कुछ स्पष्टीकरण जोड़ें, यह भविष्य में दूसरों की मदद कर सकता है। [जवाब] – cosmoonot

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