2012-01-15 96 views
1

好吧,所以基本上我有一個變量在ajax中,我想發送到我的socket.io服務器來檢查變量是否已經在json數組中。socket.io變量檢查

的Ajax:

function isUniqueEmail(email) { 
    //email checking script here 
    $.get('info/mailcheck.js' + email, function(response) { 
     if(response == 1) { 
      alert("Your email is already on our list"); 
     } 

     else { 
      alert("We will add you shortly"); 
     };  
    }) 
}; 

JSON數組:

{"mail": 
[ 
    "[email protected]", 
    "[email protected]", 
    "[email protected]" 
]} 

的socket.io部分是其中IM困惑。基本上它只需要把變量(一個電子郵件)檢查它是否已經在數組中,並返回1,如果是,或者返回0,如果不是,並將其寫入數組中。

回答

0

我對node.js的瞭解不多,但可以使用如下所示的函數來檢查值是否在數組中,如果不是,則將值推送到它。

function pushToArray(value, array) { 
    function inArray(val, arr) { 
     for (var i=0; i<arr.length; i++) { 
      if (arr[i] == val) { 
       return true; 
      } 
     return false; 
    } 
    if (inArray(value, array) { 
     return 1; 
    } else { 
     array.push(value); 
     return 0; 
    } 
} 
+0

它試圖這樣的事情,但就像我需要它太不寫入JSON文件。 – lostAstronaut 2012-01-15 17:38:50

0

你對如何讓它與socket.io一起工作或者如何在數組中找到元素感到困惑嗎?如果您使用node.js,只需使用陣列。 的indexOf方法:

//obj = {"mail": ["[email protected]", "[email protected]"]} 
if (obj.mail.indexOf(email) != -1) { 
    //We have your email! 
} 
else { 
    //We don't 
} 
+0

基本上,我只是給了一部分的JavaScript還有其他東西在JavaScript文件中,如電子郵件驗證等。但是它將變量發送到socket.io腳本的部分和腳本接受它是我困惑的地方。 – lostAstronaut 2012-01-15 17:50:22

+0

您是否將傳統的ajax調用與socket.io混合?這是行不通的。爲了在服務器上使用socket.io,您需要從客戶端連接到它。請參閱http://socket.io/#how-to-use – 2012-01-15 18:14:39

+0

上的示例哦,所以我必須從輸入字段獲取數據海峽,而不是從ajax獲取數據海峽。這就是說,然後我認爲socket.io是能夠寫入JSON – lostAstronaut 2012-01-15 20:02:53