Взять параметр из URL и передать его
Подскажите, как взять параметр из URL, пример: mysite.com/?click_id=12345 и передать его через query запрос по API? Есть такой код обработчика формы, которая собирает статические параметры из формы для отправки:
var configRender = {
ajax_url: "https://users.links/users/ajax/",
hash: "vBmksM"
};
var init = function init(configRender) {
var selector = document.querySelectorAll('.submit_form'); // Change selector which u want to render form
/////////// DEFAULT FORM VALUES
var formDeaultAttributes = {
// do not change
class: 'submit_form',
// action: `/users/ajax/:${hash}`,
method: 'post',
enctype: 'application/json'
};
var formDefaultFieldsProps = [{
name: {
type: 'text',
placeholder: 'FirstName',
label: 'First Name',
id: 'name'
}
}, {
lastname: {
type: 'text',
placeholder: 'LastName',
label: 'Last Name',
id: 'lastname'
}
}, {
email: {
type: 'email',
placeholder: 'Email',
label: 'Email',
id: 'email'
}
}, {
phone: {
type: 'text',
placeholder: 'Phone Number',
label: 'Phone Number',
id: 'phone'
}
},
{
language: {
type: 'hidden',
value: 'en',
id: 'language'
}
}
,
{
country_id: {
type: 'hidden',
value: 'UK',
id: 'country_id'
}
}];
var validationForm = function validationForm() {
$('[name=phone]').each(function (i) {
window.intlTelInput($('[name=phone]')[i], {
utilsScript: 'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/16.0.8/js/utils.js'
});
});
$(document).ready(function () {
$.validator.addMethod('intlTelNumber', function () {
if (window.intlTelInputGlobals.instances[0].isValidNumber()) {
return true;
} else {
$.validator.messages.intlTelNumber = 'Enter Correct Number';
return false;
}
});
$('form').each(function () {
$(this).validate({
invalidHandler: function invalidHandler(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
validator.errorList[0].element.focus();
$('.reg-btn').addClass('error');
}
},
submitHandler: function submitHandler(form) {
event.preventDefault();
$.ajax("".concat(configRender.ajax_url).concat(configRender.hash), {
method: 'POST',
data: $(form).serialize(),
dataType: 'json',
error: function error(_error) {
$('.reg-btn').addClass('error-btn');
}
}).then(function (resp) {
document.test = resp;
if (resp.data.redirect_url) {
return document.location.replace(resp.data.redirect_url);
}
});
},
rules: {
name: {
minlength: 2
},
lastname: {
minlength: 2
},
'phone': {
intlTelNumber: true
}
}
});
});
});
};
function addScript(src, callback) {
var s = document.createElement('script');
s.setAttribute('src', src);
s.onload = callback;
document.body.appendChild(s);
}
function AddExternals() {
if (!window.jQuery) {
var jq = document.createElement('script');
jq.type = 'text/javascript';
jq.src = 'https://code.jquery.com/jquery-3.4.1.min.js';
document.getElementsByTagName('head')[0].appendChild(jq);
console.log('Added jQuery!');
jq.onload = function () {
addScript('https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js');
addScript('https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/16.0.8/js/intlTelInput.min.js', validationForm);
};
} else {
console.log('jQuery already exists.');
}
}
AddExternals();
var formRender = function formRender() {
var field = formDefaultFieldsProps.map(function (elem, index) {
var keys = Object.keys(elem);
return "<div class='form_field'>\n <label class='form_field-label'>".concat(elem[keys].label, "<input required name=").concat(elem[keys].id, " class='form_field-input' type=").concat(elem[keys].type, " placeholder=").concat(elem[keys].placeholder, " class=''/></label></div>");
}).join('');
return field;
};
selector.forEach(function (elem) {
elem.appendChild(document.createElement('form'));
document.querySelectorAll('form').forEach(function (elem) {
return elem.innerHTML = formRender();
});
});
var attr = Object.keys(formDeaultAttributes).forEach(function (element) {
document.querySelectorAll('form').forEach(function (elem) {
return elem.setAttribute(element, formDeaultAttributes[element]);
});
});
document.querySelectorAll('form').forEach(function (elem) {
return elem.insertAdjacentHTML('beforeend', "<button class='reg-btn' type=submit>Submit");
});
};
//if need render just add script in html and
// and get correct selector to render
init(configRender)