Ich erstellte eine Anwendung, die JSON-Daten an ein Google-Formular mit Ajax sendet. Mein Problem ist, dass ich nicht alle Daten senden kann, die ich möchte, was bedeutet, dass ich nicht in der Lage bin, Inhalte innerhalb eines Textfelds und eines Auswahl-Tags zu senden. Ich arbeite mit der URL, leider musste ich etwas versteckten Inhalt verwenden, um einige Daten von einer Seite auf eine andere Seite zu verschieben, wenn ich nicht in der Lage bin, einige Daten zu bekommen.Senden von JSON-Daten an Google-Formular mit Textarea und wählen Sie Tag
Hier ist mein Code: Der javascript:
$(document).ready(function() {
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
function postContactToGoogle() {
var full_name = getParameterByName('full_name');
var home_address = getParameterByName('home_address');
var email = getParameterByName('email');
var phone_number = getParameterByName('phone_number');
var condition = getParameterByName('condition');
var extra = getParameterByName('extra');
var when_to_sell = getParameterByName('when_to_sell');
console.log(full_name, home_address, email, phone_number, condition, extra, when_to_sell);
var google_url = "https://docs.google.com/forms/d/e/1FAIpQLSdqMQL_dzhdFSVpuVtlcfIa4xHe9DNP8yozB1ncAB2e_byBJQ/formResponse";
if (full_name !== "" || email !== "" || phone_number !== "" || home_address !== "" || condition !== "" || extra !== "" || when_to_sell !== "")
{
$.ajax({
url: google_url,
data: {
"entry.515947838": full_name,
"entry.190795925": email,
"entry.1306603567": phone_number,
"entry.1032461271": home_address,
"entry.100378601": condition,
"entry.637314286": extra,
"entry.608122467": when_to_sell
},
type: "POST",
dataType: "json",
statusCode: {
0: function() {
},
200: function() {
}
}
});
}
}
postContactToGoogle();
});
Und hier ist der html, die mir eine Menge Probleme schafft: Dies ist eine Seite, wenn ich einige Daten bin zu sammeln, die ich mit der später senden ajax
<form action="step-3.html" id="form-step2">
<div class="form-control full-width">
<label for="condition">What conditions is the property in?</label>
<select id="condition" name="condition">
<option value="Good">Good</option>
<option value="Fair">Fair</option>
<option value="Bad">Bad</option>
</select>
</div>
<div class="form-control full-width">
<label for="extra">Any updates, amenities or extras?</label>
<textarea name="extra" id="extra" placeholder="e.g: recent reno, pool etc." rows="3"></textarea>
</div>
<div class="form-control full-width">
<label for="when_to_sell">When do you want to sell?</label>
<select id="when_to_sell" name="when_to_sell">
<option value="Immediately">Immediately</option>
<option value="Next 1-3 months">Next 1-3 months</option>
<option value="Next 3-6 months">Next 3-6 months</option>
</select>
</div>
<div class="form-control full-width">
<label>Are you currently working with a Real Estate Agent?*</label>
<input checked="checked" id="working_for_real_estate_agent_no" name="working_for_real_estate_agent" type="radio" />
<label class="radio-label" for="working_for_real_estate_agent_no">No</label>
<input id="working_for_real_estate_agent_yes" name="working_for_real_estate_agent" type="radio" />
<label class="radio-label" for="working_for_real_estate_agent_yes">Yes, I am working with a Realtor.</label>
<div class="asteriks">*We ask this to ensure there is no conflict of interest.</div>
</div>
<div class="form-control full-width">
<input id="home_address" name="home_address" type="hidden" />
<div class="home-evaluation-option-container">
<div class="home-evaluation-option">
<input id="exact-market-value" name="exact-market-value" type="button" value="Send Property Details" />
</div>
</div>
</div>
</form>
Und hier ist der Hack, die ich versuchte, die leider nur mit dem Input-Tag funktioniert:
<form action="step-4.html" id="form-step2">
<div class="form-control full-width">
<input name="full_name" placeholder="Full Name" type="input" data-validation="length alphanumeric" data-validation-length="min1" data-validation-error-msg="Please, insert your name" />
</div>
<div class="form-control full-width">
<input id="email" name="email" placeholder="Email" type="input" data-validation="email" />
</div>
<div class="form-control full-width">
<input id="phone_number" name="phone_number" placeholder="Phone Number" type="input" name="home-phone" data-validation="number" />
</div>
<input id="home_address" name="home_address" type="hidden" class="hide" />
<select id="condition" name="condition" class="hide">
<option value="Good">Good</option>
<option value="Fair">Fair</option>
<option value="Bad">Bad</option>
</select>
<textarea name="extra" id="extra" class="hide"></textarea>
<select id="when_to_sell" name="when_to_sell" class="hide">
<option value="Immediately">Immediately</option>
<option value="Next 1-3 months">Next 1-3 months</option>
<option value="Next 3-6 months">Next 3-6 months</option>
</select>
<div class="form-control submit-button">
<input name="submit" type="submit" value="Generate Report" />
</div>
</form>
Irgendein Gedanke, um Daten aus einem ausgewählten oder einem Textbereich zu sammeln?
Hier ist die Seite, wo Sie den Code in Aktion finden Sie unter:
http://homeworth.online/hockinghomesteam/
Ist Ihre Funktion: 'getParameterByName ('extra')' holt den Wert aus dem TextArea-Element? –
Ja, das setzt voraus, aber ich erhalte einen Nullwert –
Ich habe keine Ahnung was die 'getParameterByName()' Funktion macht. Es führt eine RegEx-Übereinstimmung aus, aber ich sehe nicht, wie es den Wert aus dem Textfeld jemals erhalten würde. –