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

Posted

技术标签:

【中文标题】如何在codeigniter中将数据从视图发送到控制器【英文标题】:How to send data from view to controller in codeigniter 【发布时间】:2016-06-25 07:58:05 【问题描述】:

我是代码点火器的新手。在我的视图中,我添加了此代码以在我的网站中启用谷歌登录。

<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>

如何将变量 user_name 和 id 发送到 Controller,以便我可以调用 Model 将值插入数据库。

【问题讨论】:

Code igniter get ajax value from view to controller的可能重复 【参考方案1】:

获取信息后,您可以简单地使用 ajax 发布信息(使用下面的 jquery):

<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>

【讨论】:

【参考方案2】:

你必须做出控制器的动作,在这个过程中你必须像这样传递变量:

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 :)

【讨论】:

我想将 javascript 变量 user_name 从视图发送到控制器。 然后将 javascript 值传递给隐藏字段并在表单操作 url 中传递该变量....然后您可以通过 $this->input->get(); 获取该变量在控制器中。【参考方案3】:

正常提交您的Form 或使用Ajax 如果您的方法是post

$this->input->post();

此方法默认包含所有其他数据的get方法

$this->input->get();

让您的form 如下所示

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

在你的控制器中

  function YOUR_METHOD()
  
      print_r($this->input->get())//By default get method
   

【讨论】:

以上是关于如何在codeigniter中将数据从视图发送到控制器的主要内容,如果未能解决你的问题,请参考以下文章

将变量从视图传递到视图 codeigniter

如何在 Codeigniter 中将值从视图传递到模型

如何在codeigniter中将ajax选择的依赖下拉选项传递给mysql数据库

在 Laravel 7 中将数据从控制器发送到视图

从 codeigniter 中的视图发送动态电子邮件附件

codeigniter 解析模板中的内容