2014-06-06 32 views
3

感謝您對我所知道的真正基本的頭腦清晰的幫助。我正在設置一個簡單的Web前端,以便我可以檢查電子郵件地址是否已經是現有MailChimp列表的訂閱者。目前我只想使用基本的HTML & JavaScript。通過HTML表單+ JavaScript將JSON結構體提交給MailChimp API

我的MailChimp API Key檢出,並且我可以運行只需要字符串數據的查詢,但相關的API調用需要一個用於電子郵件地址的結構,並且我在下面的代碼的任何變體中都會收到錯誤。我已經儘可能的安裝了node.js,並且只是從命令行運行它,並且查詢可以使用相同的數據,所以我確信我只是這個已關閉,但需要您的幫助才能完成駝峯。

這是腳本和表單的相關片段。由於寫的,我收到以下錯誤消息的回覆:驗證錯誤:{\「電子郵件\」:\「請輸入一個struct \ /關聯數組\」}「

<script type="text/javascript"> 
function collectAndSubmit() { 
     var emailAddy = document.getElementById("emailAddy").value; 
     var JSONemail = {"email": 
          { 
           "email": emailAddy 
          } 
         }; 
     document.getElementById("email").value = JSONemail; 
     document.getElementById("apikey").value ="M*Y*A*P*I*K*E*Y" 
     document.testform.submit(); 
} 
</script> 
</head> 
<body> 
<form action="https://us2.api.mailchimp.com/2.0/helper/lists-for-email" method="post" name="testform"> 
    Email Address: <input type="text" id="emailAddy" name="emailAddy" /> 
    <input type="hidden" id="apikey" name="apikey" /> 
    <input type="hidden" id="email" name="email" /> 
    <br> 
    <input type="button" value="Check Email" onclick="collectAndSubmit()" /> 
</form> 
</body> 
</html> 

預先感謝您的幫助。

+0

由於電子郵件數據現在可以直接從表單中直接傳入,而不是通過JavaScript進行彙編,因此修正/正在運行的代碼片段會有所減少。這裏是更正的輸入表格條目: 電子郵件: Bret

回答

5

您的形式是不正確,你可以在自己的documentation看一看。你不得不安裝他們所謂的email struct這實在是一個數組。您的郵箱輸入屬性應該像<input type="text" id="email" name="email[email]">

通知的email[email]它會使數據看起來像"email": {"email": "input value"}

此外,如果你的API密鑰應該是一個祕密,然後把它隱藏在HTML表單不是一個好主意。

+0

非常感謝 - 這是問題所在;我一直在閱讀他們的文檔,我只是無法弄清楚如何傳遞結構。我將用更正後的版本更新原始文章中的代碼片段。 如果您可以騰出時間進行後續工作,您提到將api鍵確實是私有的,作爲隱藏字段並不是一個好主意,我絕對同意。這個基本設置中最好的選擇是什麼,或者我真的需要以某種方式在服務器端處理這個問題? – Bret

+0

@Bret是的,如果API密鑰是祕密的,它必須居住在服務器端。所以你的服務器端語言將創建api調用,你的表單只會提交給你的服務器。 –