Я пытаюсь отправить жало через ajax, чтобы мой php мог забрать его и взять вещи оттуда, используя метод POST. Я адаптирую код из серии Adam Khoury Web Intersect 2.0. В процессе попытки отладки я решил изменить метод POST на метод GET в надежде, что переменная sting, которую я пытаюсь отправить, будет отображаться в URL-адресе, но она остается пустой все время.
Где я иду не так, это уже в моей голове уже около недели. Я попытался настроить различные предупреждения, эхо и т.д., И я просто не могу понять, где моя ошибка. У меня есть одно предупреждение в коде в настоящее время, которое выполняется непосредственно перед тем, как строка переменной отправляется на страницу, теперь предупреждение отображает код, который я ожидаю отправить через POST или GET, но это не так.
Ниже мой текущий код, только для функции, которую я пытаюсь сделать, если вы хотите получить больше кода, то дайте мне знать, альтернативно вы можете увидеть форму/страницу по адресу http://www.vwrx-project.co.uk/test2.php, его главная цель – принять участие от пользователя, добавить его все вместе, используя код ниже, затем я могу разбить его и получить результаты, которые я хочу с PHP после.
function cleanURL(){
var params = []; //creates an array to store the form data
var facebook_url = _("facebook_link").value;
var twitter_url = _("twitter_link").value;
var google_url = _("google_link").value;
var instagram_url = _("instagram_link").value;
var youtube_url = _("youtube_link").value;
var personal_url = _("personal_link").value;
var saved = "true";
if(facebook_url == "" && twitter_url == "" && google_url == "" &&
instagram_url == "" && youtube_url == "" && personal_url == "" ){
_("status").innerHTML = "Please provide at least one link before clicking submit";
} else {_("submitbtn").style.display = "none";
_("status").innerHTML = 'please wait ...';
var ajax = ajaxObj("GET", "test2.php");
if (facebook_url !== "") {
params.push("fb=" + facebook_url); //creates key value pair and adds to array
}
if (twitter_url !== "") {
params.push("tw=" + twitter_url); //creates key value pair and adds to array
}
if (google_url !== "") {
params.push("go=" + google_url); //creates key value pair and adds to array
}
if (instagram_url !== "") {
params.push("in=" + instagram_url); //creates key value pair and adds to array
}
if (youtube_url !== "") {
params.push("yt=" + youtube_url); //creates key value pair and adds to array
}
if (personal_url !== "") {
params.push("pe=" + personal_url); //creates key value pair and adds to array
}
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
_("status").innerHTML = ajax.responseText;
}
}
}
alert(params.join("&"));
ajax.send(params.join("&")); // sends the array of key value pairs to php and joins enteries with &
Для GET вы должны добавлять параметры непосредственно к URL-адресу и не передавать его в ajax.send.
Со следующим кодом он работает для меня с помощью POST. Просто убедитесь, что вы отправляете запрос только в том случае, если объект AJAX создан – таким образом, в ветке else:
// ...
} else {_("submitbtn").style.display = "none";
_("status").innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "test2.php");
if (facebook_url !== "") {
params.push("fb=" + facebook_url); //creates key value pair and adds to array
}
// …
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
_("status").innerHTML = ajax.responseText;
}
}
ajax.send(params.join("&"));
}