将JavaScript变量值从视图分配给控制器变量

时间:2015-02-12 20:38:26

标签: javascript php codeigniter

我正在尝试将我在视图中使用JavaScript创建的变量中的值赋给控制器中的变量。我怎样才能做到这一点?我是CodeIgniter和JavaScript的新手。

我的想法是,我使用JavaScript验证视图中的电子邮件输入字段,然后将该值分配给控制器变量,然后在我的控制器中检索该值。

$john_email是我的控制器变量,email是我的JavaScript变量

$('#submitRequests').click(function(){
console.log("Clicked submit");
var data = getTableContent();
console.log("machines: ");
console.log(data);
var email = $("#emailInput").val();
if(isEmail(email)){
    $john_email = email; // something like this!
    uploadMachines(data);
}
else 
    alert("Incorrect email");
});

3 个答案:

答案 0 :(得分:1)

听起来你对客户端 - 服务器编程很新。 JavaScript在客户端(Web浏览器)上运行,PHP在服务器上运行。要将数据从JavaScript发送到PHP,您需要通过发布页面或使用AJAX将数据提交回服务器,以便与服务器进行异步通信(允许您将数据发送回服务器和更新客户端上的页面而不发布和重新加载它)。 有很多关于AJAX的很棒的教程,而且我认为,最好的教学是我最喜欢的。阅读这个主题,如果您仍然需要帮助,请报告您尝试过的代码以及您获得的结果。

答案 1 :(得分:0)

由于您已在代码中使用jQuery,请查看jQuery.ajax()方法。另外,对于CodeIgniter,请看一下Input类。

答案 2 :(得分:0)

// Javascript

 $('#submitRequests').click(function(){
     console.log("Clicked submit");
     var data = getTableContent();
     console.log("machines: ");
     console.log(data);
     var email = $("#emailInput").val();
     if(isEmail(email)){             
          $.ajax({
                   type: "POST",
                   url: base_url + "controller/post_email", //here base_url = http://domain.com
                   data: {email: email},
                   dataType: "text",  
                   cache:false,
                   success: 
                        function(john_email){
                         alert(john_email);                          
                        }

               return false;
           });
     }
     else 
         alert("Incorrect email");
     });

// codeigniter controller

<?php
     function post_email()
     {   
        $john_email = $_POST['email'];

        return $john_email;
     }
?>