【问题标题】:how to pass parameters to url怎么给url传参数
【发布时间】:2013-12-16 17:04:05
【问题描述】:

我正在尝试将参数传递给 URL 并将它们放入控制器函数中: 在锚点 onclick 中,我将值传递给了 javascript 函数。

这是 onclick 锚点:

<a href="" onclick="change_lang('<?=base_url()?>home/change_lang','en')">English</a>

这是javascript函数:

function change_lang(page,str)
{
  var url=page;
  var params='?lang='+str;

  makerequest_sp(url, params);
}

这是控制器功能:

public function change_lang()
{
  $lang=$this->input->Get('lang');

  if(!isset($lang))
  {
    $this->session->set_userdata('lang',"en"); 
  }
  else
  {
    $this->session->set_userdata('lang',$lang); 
  }

  redirect(base_url());
}

还有这个 makerequest_sp 函数:

  function makerequest_sp(serverPage, params, objID)
{ 
    var xmlhttp_sp = getXMLHttp();
    //set url
    var url = serverPage;

    //set xml method to POST
    xmlhttp_sp.open("POST", url, true);
    //Send the proper header information along with the request
    xmlhttp_sp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
    xmlhttp_sp.setRequestHeader("Content-length", params.length);
    xmlhttp_sp.setRequestHeader("Connection", "close");

    xmlhttp_sp.onreadystatechange = function() {//Call a function when the state changes.

        if(xmlhttp_sp.readyState == 4 && xmlhttp_sp.status == 200) {
            document.getElementById(objID).innerHTML = xmlhttp_sp.responseText;
        }
    }
    //send parameters
    xmlhttp_sp.send(params);    

}

但我无法访问传递的参数。

【问题讨论】:

  • PHP 中如何从makerequest_spchange_lang 函数?

标签: javascript php codeigniter session parameters


【解决方案1】:

您正在执行 AJAX 请求。我猜你想知道为什么redirect 不会使浏览器重定向?

这是因为 AJAX 请求获取的是重定向,而不是页面。

您可以将页面重定向到的 URL 传回,而不是发送重定向标头,或者如果您知道该 URL,您可以立即重定向:

makerequest_sp(/* .. */).done(function () {
    document.location.href = url;
});

// using Promise assumption for ajax request

【讨论】:

    猜你喜欢
    • 2011-03-11
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多