Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 在Codeingiter中的控制器函数中检索多个post变量_Ajax_Controller - Fatal编程技术网

Ajax 在Codeingiter中的控制器函数中检索多个post变量

Ajax 在Codeingiter中的控制器函数中检索多个post变量,ajax,controller,Ajax,Controller,我正在向控制器发送数据,如下所示: var postVars = new Array(); postVars[0] = key; postVars[1] = haveCredits; postVars[2] = creditsNeeded; postVars[3] = creditsLeft; //alert(postVars.join("&")); xhr.open('POST', 'ajax'); xhr.setRequestHeader('Content-Type', 'appli

我正在向控制器发送数据,如下所示:

var postVars = new Array();
postVars[0] = key;
postVars[1] = haveCredits;
postVars[2] = creditsNeeded;
postVars[3] = creditsLeft;
//alert(postVars.join("&"));
xhr.open('POST', 'ajax');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(postVars.join("&"));
xhr.send("postVars="+encodeURIComponent(postVars.join("&")));
如何在控制器函数中检索此值

控制器代码:

$variableValues= explode('&',$this->input->post('postVars'));
它正在返回一个空数组


提前感谢。

将最后一行更改为:

var postVars = new Array();
postVars[0] = key;
postVars[1] = haveCredits;
postVars[2] = creditsNeeded;
postVars[3] = creditsLeft;
//alert(postVars.join("&"));
xhr.open('POST', 'ajax');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(postVars.join("&"));
xhr.send("postVars="+encodeURIComponent(postVars.join("&")));
现在$variableValues=explode'&',$this->input->post'postVars';应该有用


顺便说一句,我想介绍你认识。它是最流行的JavaScript库之一,功能非常强大。

您发送的不是真正的application/x-www-form-urlencoded格式。您只是将字符串值而不是命名的URL转义参数连接在一起

我建议以标准URL编码格式发送单独的参数:

function encodeParameters(o) {
    for (var k in o)
        pars.push(encodeURIComponent(k)+'='+encodeURIComponent(o[k]))
    return pars.join('&');
}

var pars= {key: key, have: haveCredits, needed: creditsNeeded, left: creditsLeft};
xhr.open('POST', '/ajax');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(encodeParameters(pars));
然后在PHP端,您可以使用普通请求数组检索它们:

$key= $_POST['key'];
$creditsNeeded= intval($_POST['needed']);
// ...