I'm trying to create a bookmarklet that parses a page and sends the results to a googledocs spreadsheet via a form that I've defined.
The relevent bit of the script is:
var form = document.createElement("form");
form.action = "http://spreadsheets.google.com/formResponse?formkey=Fd0SHgwQ3YwSFd5UHZpM1QxMlNOdlE6MA&ifq";
form.method = "POST";
form.id="ss-form";
form.innerHTML = ["<input id='entry_0' name = 'entry.0.single' value = '" + orderDate + "'/>", "<input name = 'entry.2.single' value = '" + email + "'/>", "<input name = 'entry.3.single' value = '" + customerID + "'/>", ].join("");
form.submit();
alert(form.innerHTML);
// returns:
Nothing is being saved to the form via the bookmarklet - any way to capture google's response in my bookmarklet's code? (fwiw, i've injected jQuery via jQueryify)
EDIT:
Firebug's Net panel isn't hearing any of the activity triggered by the bookmarklet - How about i approach this from goolgle's viewform method instead of formresponse.
The form i'm trying to submit is located at:
http://spreadsheets.google.com/viewform?hl=en&formkey=dFd0SHgwQ3YwSFd5UHZpM1QxMlNOdlE6MA
How can I go about injecting the script values into that form and then submitting that - again...via script within the bookmarklet that would have been triggered while on the page being parsed?
if your already using jquery, try submitting the form via ajax ($.ajax). You can setup a success function that will be called when google sends back their response.
alternatively you should be able to use firebug to view the response google sends back.
Specifically I was thinking you could try something like the following:
$.ajax({
url: "http://spreadsheets.google.com/formResponse",
data: { formkey: "Fd0SHgwQ3YwSFd5UHZpM1QxMlNOdlE6MA&ifq", "entry.0.single": orderDate, "entry.2.single": email, "entry.3.single": customerID },
type: "POST",
dataType: "xml",
success: function(data, textStatus, XMLHttpRequest) {
console.log("success");
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("error");
console.log(textStatus);
},
})