Ajax, похоже, не отправляет мою переменную строку, используя либо POST, либо GET

Вопрос:

Я пытаюсь отправить жало через 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 &

Ответ №1

Для 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("&"));
}

Оцените статью
TechArks.Ru
Добавить комментарий