从控制器codeigniter调用javascript函数

0 javascript php controller codeigniter view

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

Att*_*cus 6

这实际上比你想象的要容易得多..一旦你看到它有多棒,你就会开始使用这个你的开发!

首先,我们将使用jQuery的本机POST功能.

在您想要访问的控制器内创建一个函数,我的建议是在函数名前加上"ajax_"

所以这是控制器功能的一个例子:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是你简单的onclick javascript函数:

function lookUpUsername(name){
    $.post( 
        'http://yourwebsite/controller/ajax_lookUpUsername',
         { username: name },
         function(response) {  
            if (response == 1) {
               alert('username available');
            } else {
               alert('username taken');
            }
         }  
    );
}
Run Code Online (Sandbox Code Playgroud)

第二个参数{ username: name }是你的帖子值将去的地方,这里的术语"用户名"是键,name是传入的值.所以这是一个后键值对,通常会发送一条帖子消息.

response传递给回调函数的变量是控制器返回的回显.沟通非常简单.

简单是惊人的,而我只有你处理PHP返回0或1,你可以返回非常高级的json对象,你可以为整个前端程序提供动力.

对于更高级的响应,您可以通过这种方式从控制器阵列回显:

echo json_encode($array_of_data); 
Run Code Online (Sandbox Code Playgroud)

这将返回一个完美的json数据集,您可以使用任何面向对象的方法.我使用这个全身心,你很快就会确定:)

祝你好运!如果您有任何关于通过简单的0或1回声扩展回复的问题,请随时与我们联系