Page 1 of 1

Integration with Mad Mimi

Posted: Thu Apr 11, 2013 8:21 pm
by calastudio
Has anyone succesfully integrated with Mad Mimail?

It appears that the form variables are not being sent (well I don't see the email address that i am registering with appearing in myMad Mimi subscribers list)

Here's my form

http://www.calastudio.com/subscriptions/confirm-email-address/

Here's the Mad Mimi Form:

Code: Select all

 <form action="https://madmimi.com/signups/subscribe/77930" method="post" id="mad_mimi_signup_form" target="_blank"> 
  <fieldset> 
   <div class="mimi_field text email required"> 
    <label for="signup_email">Email</label> 
    <input id="signup_email" name="signup[email]" type="text" placeholder="[email protected]" data-invalid-message="This field is invalid" class="required"> 
    <div class="mimi_field_feedback"></div><span class="mimi_funk"></span> 
   </div> 
   <div class="mimi_field text required"> 
    <label for="signup_name" id="wf_label">Name</label> 
    <input id="signup_name" name="signup[name]" data-required-message="This field is required" type="text" class="required"> 
    <div class="mimi_field_feedback"></div><span class="mimi_funk"></span> 
   </div> 
   <div class="mimi_field action"> 
    <input id="webform_submit_button" value="Inscribirse!" type="submit" class="submit" data-default-text="Inscribirse!" data-submitting-text="Sending…" data-invalid-text="↑ You forgot some required fields"> 
   </div> 
  </fieldset> 
 </form> 
<script type="text/javascript">
(function() {
  var form = document.getElementById("mad_mimi_signup_form"),
      submit = document.getElementById("webform_submit_button"),
      email = /.+@.+\..+/;
      
  form.onsubmit = function(event) {
    var isValid = validate();
    if(!isValid) {
      for(var i = 0; i < form.elements.length; ++i) {
        var input = form.elements[i];
        if(input.className.indexOf("required") >= 0) {
          input.onchange = validate;
        }
      }
      return false;
    }
    if(form.getAttribute("target") != "_blank") {
      form.className = "mimi_submitting";
      submit.value = submit.getAttribute("data-submitting-text");    
  		submit.disabled = true;
  		submit.className = "disabled";
    }

    setTimeout(function() {
      for(var i = 0; i < form.getElementsByTagName("input").length; ++i) {
        var input = form.getElementsByTagName("input")[i];
        if(input.getAttribute("type") == "text") {
          input.value = "";
        }
        if(input.id == "signup_email") {
          input.placeholder = "[email protected]";
        } else {
          input.placeholder = "";
        }
      }
    }, 3000);
  };
  
  function validate() {
    var isValid = true;
    
    for(var i = 0; i < form.elements.length; ++i) {
      var input = form.elements[i],
          allDivs = input.parentNode.getElementsByTagName("div");

      if(input.className.indexOf("required") >= 0) {
        if(input.id == "signup_email") {
          if(!email.test(input.value)) {
            emailErrorMessage(input, allDivs);
            isValid = false;
          } else {
            removeErrorMessage(input, allDivs);
          }
        } else {
          if((input.type == "checkbox" && !input.checked) || input.value == "" || input.value == "-1") {
            fieldErrorMessage(input, allDivs);
            isValid = false;
          } else {
            removeErrorMessage(input, allDivs);
          }
        }
      }
    }
    
    form.className = isValid ? "" : "mimi_invalid";
    submit.value = isValid ? submit.getAttribute("data-default-text") : submit.getAttribute("data-invalid-text");
		submit.disabled = !isValid;
		submit.className = isValid ? "submit" : "disabled";
    
    return isValid;
  }

  function emailErrorMessage(input, allDivs) {
    if(input.getAttribute("data-webform-type") == "iframe") {
      input.className = "required invalid";
      input.placeholder = input.getAttribute("data-required-message") || "This field is required";
    } else {
      allDivs[0].innerHTML = input.getAttribute("data-invalid-message") || "This field is invalid";
    }
  }

  function fieldErrorMessage(input, allDivs) {
    if(input.getAttribute("data-webform-type") == "iframe") {
      input.className = "required invalid";
      input.placeholder = input.getAttribute("data-required-message") || "This field is required";
    } else {
      for(var i = 0; i < allDivs.length; ++i) {
        var element = allDivs[i];
        if(element.className.indexOf("mimi_field_feedback") >= 0) {
          return element.innerHTML = input.getAttribute("data-required-message") || "This field is required";
        }
      }
    }
  }

  function removeErrorMessage(input, allDivs) {
    if(input.getAttribute("data-webform-type") == "iframe") {
      input.className = "required";
    }

    for(var i = 0; i < allDivs.length; ++i) {
      var element = allDivs[i];
      if(element.className.indexOf("mimi_field_feedback") >= 0) {
        return element.innerHTML = "";
      }
    }
  }
})();
</script>

Posted: Fri Apr 12, 2013 7:21 am
by Jean-Christophe Bisoux
Hi,

Mad Mini is not integrated in the code detector, but you can enter manually the variables like that :

Form Action URL: https://madmimi.com/signups/subscribe/77930
Form NAME field: signup[name]
Form EMAIL field: signup[email]

regards,

Posted: Fri Apr 12, 2013 5:26 pm
by calastudio
Thanks. My problem was that I was using the "id" instead of the "name" of the input field.

So I was incorrectly using

Form NAME field: signup_name
Form EMAIL field: signup_email

Posted: Tue Jun 04, 2013 11:29 am
by calastudio
Thanks. My problem was that I was using the "id" instead of the "name" of the input field.

So I was incorrectly using

Form NAME field: signup_name
Form EMAIL field: signup_email