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

Ben web soketleri aracılığıyla sunucuya bu formda veri göndermek istediğiniz i socket.io kullanıyorum.Form verilerini web üzerinden nasıl geçirebilirim? (Socket.io)

Bunu başarmanın en iyi yolu nedir?

+0

Neden WebSocket'e deneyebilirsiniz? Bu bir istemci-sunucu isteği, bu yüzden normal http isteği işe yarayacaktı. –

cevap

9

Öyle gibi form üzerinde .serialize() kullanmanız gerekir:

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

O zaman geçmesine WebSocket'e bitti. node.js tarafında, querystring.parse kullanarak bir JS nesnesi geri alabilirsiniz:

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

, bu dosya yükleme ile çalışır? –

-1

bu

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"))); 

iyi şanslar :) burada

+0

Kodunuzla ilgili bir açıklama ekleyin, gelecekte başkalarına yardımcı olabilir. [Cevap] – cosmoonot

İlgili konular