我一直在尝试通过ajax发送一个sting,以便我的php可以使用POST方法从中获取并从中获取内容。我正在调整Adam Khoury的Web Intersect 2.0系列中的代码。在尝试调试的过程中,我决定将POST方法更改为GET方法,希望我尝试发送的变量sting会显示在URL中,但它始终保持空白。
我哪里出错了,现在已经开了大约一个星期了。我尝试过设置不同的提醒,回声等等,我无法弄清楚我的错误在哪里。我现在在代码中有一个警报,它在变量字符串发送到页面之前运行,现在警报显示我希望通过POST或GET发送的代码,但不是。
以下是我目前的代码,仅针对我尝试工作的功能,如果您想了解更多代码,请告知我们,您可以在{{3}处看到表单/页面。 },它的主要目标是从用户那里获取输入,使用下面的代码将它们全部附加在一起,然后我可以将它拆分并在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 &
答案 0 :(得分:0)
对于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("&"));
}