Javascript 如何在codeigniter中将数据从视图发送到控制器

Javascript 如何在codeigniter中将数据从视图发送到控制器,javascript,php,database,codeigniter,Javascript,Php,Database,Codeigniter,我是新的代码点火器。在我看来,我添加此代码是为了在我的网站中启用google登录 <html lang="en"> <head> <meta name="google-signin-scope" content="profile email"> <meta name="google-signin-client_id" content="720765566138-5c6jreo4r7ma6cm0hdblj5cmjtdiruk4.apps.googleuse

我是新的代码点火器。在我看来,我添加此代码是为了在我的网站中启用google登录

<html lang="en">
<head>
<meta name="google-signin-scope" content="profile email">
<meta name="google-signin-client_id" content="720765566138-5c6jreo4r7ma6cm0hdblj5cmjtdiruk4.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer>     </script>
</head>
<body>
<div class="g-signin2" data-onsuccess="onSignIn" data-onfailure="onFailure" data-theme="dark"></div>
<script>
function onFailure(msg){ console.log(msg); }
function onSignIn(googleUser) {
    console.log("onSignIn");
    var profile = googleUser.getBasicProfile();
    var user_name = profile.getName();
    var id = googleUser.getAuthResponse().id;
};
</script>
</body>
</html>

函数onFailure(msg){console.log(msg);}
函数onSignIn(谷歌用户){
控制台日志(“onSignIn”);
var profile=googleUser.getBasicProfile();
var user_name=profile.getName();
var id=googleUser.getAuthResponse().id;
};

如何将变量user_name和id发送到控制器,以便调用模型将值插入数据库。

您必须执行控制器的操作,并且在此过程中,您必须按如下方式传递变量:

function test{
    $user_name = "XYZ";
    $this->load->view('view_name', $user_name);
    }
如果要传递多个变量,请使用以下命令:

function test{
        $user_name = "XYZ";
        $data = 123;
        $this->load->view('view_name', array("user_name"=>$user_name,"data"=>$data));
    }
May this will help you :)

如果您的方法是
post

$this->input->post();
默认情况下,此方法包含所有其他数据。get方法

$this->input->get();
让您的
表单
如下所示

 <form action="baseurl/controller_name/method">
 add hidden field of user_id then sumbmit 
 </form>

您只需在获得信息后使用ajax发布信息(使用下面的jquery):


函数onSignIn(谷歌用户)
{
var profile=googleUser.getBasicProfile();
var user_name=profile.getName();
var id=googleUser.getAuthResponse().id;
$.ajax({
'url':'the/path/to/controller',
'type':'POST',
'data':{'user\u name':user\u name,'id':id},
'success':function(){},//由您决定
“错误”:函数()//由您决定
})
};

我想将JavaScript变量user\u name从视图发送到控制器。然后将JavaScript值传递到隐藏字段,并以动作url的形式传递该变量。。。。然后您可以通过$this->input->get()获得该变量;控制器中。可能存在的副本
  function YOUR_METHOD()
  {
      print_r($this->input->get())//By default get method
  } 
<script>
    function onSignIn(googleUser)
   {
       var profile = googleUser.getBasicProfile();
       var user_name = profile.getName();
       var id = googleUser.getAuthResponse().id;
       $.ajax({
               'url': 'the/path/to/controller',
               'type': 'POST',
               'data':{'user_name': user_name, 'id':id},
               'success': function(){}, //up to you
               'error': function() // up to you
             })
    };
</script>