Php 从控制器codeigniter调用javascript函数

Php 从控制器codeigniter调用javascript函数,php,javascript,codeigniter,view,controller,Php,Javascript,Codeigniter,View,Controller,我正在使用codeigniter开发网站。我有一个包含添加按钮和文本框的表单。一旦用户输入数据,我必须检查它是否存在于数据库中,如果是,在页面中生成一个动态文本框,否则会提醒用户。我已经编写了javascript来生成动态文本框。我的问题是如何签入数据库???如何从javascript调用controller或从controller调用javascript函数???您可以通过对服务器中的php页面进行ajax调用来实现,该页面检查数据库中是否存在数据。如果您使用的是jquery,那么您可以用一种

我正在使用codeigniter开发网站。我有一个包含添加按钮和文本框的表单。一旦用户输入数据,我必须检查它是否存在于数据库中,如果是,在页面中生成一个动态文本框,否则会提醒用户。我已经编写了javascript来生成动态文本框。我的问题是如何签入数据库???如何从javascript调用controller或从controller调用javascript函数???

您可以通过对服务器中的php页面进行ajax调用来实现,该页面检查数据库中是否存在数据。如果您使用的是jquery,那么您可以用一种更简单的方式来实现,在这里您可以找到非常好的示例:


如果您不这样做,您仍然可以通过多行代码来完成。

您可以通过对服务器中的php页面进行ajax调用来完成,该页面检查数据库中是否存在数据。如果您使用的是jquery,那么您可以用一种更简单的方式来实现,在这里您可以找到非常好的示例:


如果您不这样做,您可以使用更多的代码行来完成它。

这实际上比您预期的要简单得多。。一旦你看到它有多棒,你就会开始在你的开发中使用它

首先,我们将使用jQuery的原生POST函数

在您的控制器中创建一个您想要访问的函数,我的建议是在函数名前面加上“ajax\ux”

下面是控制器功能的一个示例:

function ajax_lookUpUsername(){
    $username = $this->input->post('username');
    $this->db->where('username', $username);
    $query = $this->db->get('accounts');
    if ($query->num_rows() > 0){
       echo 0;
    } else {
       echo 1;
    }
}
function lookUpUsername(name){
    $.post( 
        'http://yourwebsite/controller/ajax_lookUpUsername',
         { username: name },
         function(response) {  
            if (response == 1) {
               alert('username available');
            } else {
               alert('username taken');
            }
         }  
    );
}
下面是简单的onclick javascript函数:

function ajax_lookUpUsername(){
    $username = $this->input->post('username');
    $this->db->where('username', $username);
    $query = $this->db->get('accounts');
    if ($query->num_rows() > 0){
       echo 0;
    } else {
       echo 1;
    }
}
function lookUpUsername(name){
    $.post( 
        'http://yourwebsite/controller/ajax_lookUpUsername',
         { username: name },
         function(response) {  
            if (response == 1) {
               alert('username available');
            } else {
               alert('username taken');
            }
         }  
    );
}
第二个参数
{username:name}
是post值的去向,这里的术语“username”是键,name是传入的值。因此,这是一个post键值对,通常与post消息一起发送

传递到回调函数中的变量
response
是控制器返回的回音。沟通变得非常容易

简单性是惊人的,虽然我只让您处理返回0或1的php,但您可以返回非常高级的json对象,您可以使用这些对象为整个前端程序提供支持

要获得更高级的响应,您可以通过以下方式从控制器阵列中回显:

echo json_encode($array_of_data); 
这将为您返回一个完美的json数据集,您可以使用任何面向对象的方法。我到处都用这个,你很快也会用的我肯定:)


祝你好运!请随时联系我们,如果您有任何疑问,可以通过简单的0或1回声来扩展响应,这实际上比您预期的要容易得多。。一旦你看到它有多棒,你就会开始在你的开发中使用它

首先,我们将使用jQuery的原生POST函数

在您的控制器中创建一个您想要访问的函数,我的建议是在函数名前面加上“ajax\ux”

下面是控制器功能的一个示例:

function ajax_lookUpUsername(){
    $username = $this->input->post('username');
    $this->db->where('username', $username);
    $query = $this->db->get('accounts');
    if ($query->num_rows() > 0){
       echo 0;
    } else {
       echo 1;
    }
}
function lookUpUsername(name){
    $.post( 
        'http://yourwebsite/controller/ajax_lookUpUsername',
         { username: name },
         function(response) {  
            if (response == 1) {
               alert('username available');
            } else {
               alert('username taken');
            }
         }  
    );
}
下面是简单的onclick javascript函数:

function ajax_lookUpUsername(){
    $username = $this->input->post('username');
    $this->db->where('username', $username);
    $query = $this->db->get('accounts');
    if ($query->num_rows() > 0){
       echo 0;
    } else {
       echo 1;
    }
}
function lookUpUsername(name){
    $.post( 
        'http://yourwebsite/controller/ajax_lookUpUsername',
         { username: name },
         function(response) {  
            if (response == 1) {
               alert('username available');
            } else {
               alert('username taken');
            }
         }  
    );
}
第二个参数
{username:name}
是post值的去向,这里的术语“username”是键,name是传入的值。因此,这是一个post键值对,通常与post消息一起发送

传递到回调函数中的变量
response
是控制器返回的回音。沟通变得非常容易

简单性是惊人的,虽然我只让您处理返回0或1的php,但您可以返回非常高级的json对象,您可以使用这些对象为整个前端程序提供支持

要获得更高级的响应,您可以通过以下方式从控制器阵列中回显:

echo json_encode($array_of_data); 
这将为您返回一个完美的json数据集,您可以使用任何面向对象的方法。我到处都用这个,你很快也会用的我肯定:)


祝你好运!请随时联系我们,如有任何问题,请通过简单的0或1回音扩展回复。

非常感谢。。。。我正在为表单中的输入框开发autocomplete…模型将传递数据数组…如何在视图中显示它???首先,您希望从控制器响应json_编码($array_stuff),所以将该函数包装在您要回送的数组周围。现在,您可以像读取任何json对象一样读取javascript中的数据集。响应['key']=值。根据返回数组的结构,您可能需要遍历它,或者只需引用键。如果您满意,请标记为已回答:)没问题——如果在将响应转换为json时遇到问题——请尝试在回调函数中包装eval(response)——有时需要这样做。除此之外,google搜索“parse json”以查找您在收集结果时可能遇到的任何麻烦——但它几乎将其视为一个数组-->响应['key']=value非常感谢。。。。我正在为表单中的输入框开发autocomplete…模型将传递数据数组…如何在视图中显示它???首先,您希望从控制器响应json_编码($array_stuff),所以将该函数包装在您要回送的数组周围。现在,您可以像读取任何json对象一样读取javascript中的数据集。响应['key']=值。根据返回数组的结构,您可能需要遍历它,或者只需引用键。如果您满意,请标记为已回答:)没问题——如果在将响应转换为json时遇到问题——请尝试在回调函数中包装eval(response)——有时需要这样做。除此之外,google搜索“parse json”以查找在收集结果时可能遇到的任何问题——但它几乎将其视为一个数组-->响应['key']=value