D'une certaine manière, un simple formulaire que je dois vous inscrire pour une liste de diffusion (qui ajoute un email à un groupe Google Apps, en utilisant gdatav2rubyclientlib) semble échouer occasionnellement . Le formulaire est soumis via POST via jQuery, et l'application Sinatra (fonctionnant sur nginx/Passenger) gère le POST et m'envoie une confirmation par e-mail. De temps en temps, je reçois des courriels qui sont «non définis». D'une manière ou d'une autre, la valeur que l'utilisateur tape se perd, mais je ne suis pas sûr de savoir comment ou pourquoi. . .liste de diffusion utilisant JQuery, Sinatra, HAML échoue avec l'adresse email "indéfinie"
est ici la forme HAML dont le POST origine:
%li.sidebar-section
%span#mailing-list-slug
get on our mailing list
<br/>
%form{:id => "mailing_list_signup", :method => "post", :action => "/mailinglist/signup/the.grapevine"}
%input{:type => 'text', :name => 'email', :value => "enter your email…", :id => 'mailing-list-signup'}
%input{:id => "mailing_list_signup_button", :type => 'submit', :value => 'sign up'}
#thanks
thanks! you're in!
Voici le Javascript qui rend le POST. $ ('# mailing_list_signup_button') cliquez sur (function() { var email_address = $ ('entrée # mailing-list-inscription' val());.
$.ajax({
type: "POST",
url: "/mailinglist/signup/the.grapevine",
data: "email=" + email_address,
success: function() {
$('#thanks').show('slow');
}
});
var email_address = $('input#email').val();
$.post("/mailinglist/signup/the.grapevine",
$('form#mailing_list_signup').serialize(), function(result){alert(email_address);});
return false; });
});
Voici mon gestionnaire d'itinéraire pour la requête POST
post '/mailinglist/signup/:list' do
adminuser = "ADMINUSERNAME"
password = "PASSWORD"
email = params[:email]
mailing_list = params[:list]
myapps = ProvisioningApi.new(adminuser,password)
myapps.add_member_to_group(email, mailing_list)
gmail(:to => 'MYEMAIL', :subject => "HEY HEY GUESS WHAT, #{params[:email]} JUST SIGNED UP FOR #{params[:list]}!", :body => "Totally not joking--")
end
Toutes les pensées seraient appréciées!
Oui, c'est logique. Mais je suis toujours confus au sujet de la raison pour laquelle je reçois la valeur "indéfini". Peu importe ce qu'ils ont ajouté, je devrais simplement obtenir la valeur qu'ils ont entrée, n'est-ce pas? – aresnick
Si une variable JavaScript n'est pas définie, elle retournera "indéfini". http://www.w3schools.com/jsref/jsref_undefined.asp – calvinf
Oh je vois, merci! – aresnick