如何在codeigniter控制器的回调函数中调用javascript函数?

我想将javascript函数调用为codeigniter控制器的回调函数。</ p>

控制器:回调函数</ p>

  public function email_exist($ id){
$ this-&gt; db-&gt; where('email',$ id);
$ query = $ this-&gt; db-&gt; get('login');
if(!$ query-&gt; num_rows()&gt; 0){

$ this-&gt; form_validation-&gt; set_message (__FUNCTION __,$ this-&gt; email_validate());

返回FALSE;
} else {
返回TRUE;
}
</ code> </ pre>

Javascript:警报功能</ p>

   function email_validate(){
alert('Invalid Email Id');
}
</ code> </ pre>

遇到未捕获的异常</ p>

类型:错误</ p>

消息:调用未定义的方法Login :: email_validate()</ p>

文件名:C:\ wamp64 \ www \ CodeIgniterProject1 \ application \ controllers \ login.php </ p>

行号:46 </ p>

login_form.php </ p>

  &lt;?php echo validation_errors();  ?&gt; 
&lt;?php echo form_open_multipart(); ?&gt;
&lt; form name =“form”&gt;
&lt; div class =“loginform”&gt;
&lt;?php echo form_label('LOGIN','login'); ?&gt;
&lt; / div&gt;
&lt; div class =“email”&gt;
&lt;?php echo form_input('email','E-MAIL',set_value('email')); ?&gt;
&lt; / div&gt;
&lt; div class =“password”&gt;
&lt;?php echo form_password('password','PASSWORD',set_value('password')); ?&gt;
&lt; / div&gt;
&lt; div class ='checkbox'&gt;
&lt;?php
echo form_checkbox(array(
'name'=&gt;'remember',
' id'=&gt;'remember',
'value'=&gt;'记住我',
'选中'=&gt; FALSE,
'样式'=&gt;'margin:1px'
))。 form_label('记住我','记住');
?&gt;
&lt; / div&gt;
&lt; div class ='btnlogin'&gt;
&lt;?php echo form_submit('login',' 登录'); ?&gt;
&lt; / div&gt;
&lt; / form&gt;
</ code> </ pre>
</ div>

展开原文

原文

I want call the javascript function into callback function of codeigniter controller.

Controller: Callback function

public function email_exist($id) {
        $this->db->where('email', $id);
        $query = $this->db->get('login');
        if (!$query->num_rows() > 0) {

            $this->form_validation->set_message(__FUNCTION__, $this->email_validate());          
            return FALSE;
        } else {
            return TRUE;
        }

Javascript: Alert function

function email_validate(){
    alert('Invalid Email Id');
}

An uncaught Exception was encountered

Type: Error

Message: Call to undefined method Login::email_validate()

Filename: C:\wamp64\www\CodeIgniterProject1\application\controllers\login.php

Line Number: 46

login_form.php

<?php echo validation_errors(); ?>
<?php echo form_open_multipart(); ?>
<form name="form">
    <div class="loginform">
        <?php echo form_label('LOGIN', 'login'); ?>
    </div>
    <div class="email">
        <?php echo form_input('email', 'E-MAIL', set_value('email')); ?>
    </div>
    <div class="password">
        <?php echo form_password('password', 'PASSWORD', set_value('password')); ?>
    </div>
    <div class='checkbox'>
        <?php
        echo form_checkbox(array(
            'name' => 'remember',
            'id' => 'remember',
            'value' => 'REMEMBER ME',
            'checked' => FALSE,
            'style' => 'margin:1px'
        )) . form_label('REMEMBER ME', 'remember');
        ?>
    </div>
    <div class='btnlogin'>
        <?php echo form_submit('login', 'LOGIN'); ?>
    </div>
</form>

dongnao2048
dongnao2048 您还可以添加带有动画的动画以从css3过渡
大约一年之前 回复
douyou2732
douyou2732 制作两个css类:错误和有效,并使用jQuery从js:$(this).RemoveClass('valid')。AddClass('error')
大约一年之前 回复
dongta5747
dongta5747 好的,但我不知道怎么办?让我尝试。我不知道如何为validation_errors提供css
大约一年之前 回复
du0173
du0173 如果要在电子邮件无效时将css修改为字段,请仅执行前端验证。无需担心控制器。
大约一年之前 回复
dongzhi4239
dongzhi4239 实际上css不起作用,这就是我尝试使用js的原因
大约一年之前 回复
dqellle310167
dqellle310167 你不能这样做。php中有很多用于电子邮件验证的库。
大约一年之前 回复

1个回答



您无法在Codeigniter中执行此操作,请使用Codeigniter默认表单验证库</ p>

查看此处 </ p>

如果您需要 要为验证错误添加css,请尝试 set_error_delimeters()</ strong> </ p>

如果您有引导程序,则使用</ p>


alert alert-danger </ p>
</ blockquote>

class,否则创建一个类</ p>

  $ this-&gt; form_validation-&gt  ; set_error_delimiters('&lt; div class =“alert alert-danger”&gt;','&lt; / div&gt;'); 
</ code> </ pre>

请参阅 </ p>

[其他建议] </ strong> </ p>

而不是将所有错误放在顶部,您也可以尝试</ p>

 &lt;?php

echo form_error('email');
form_input('ema il','E-MAIL',set_value('email'));
?&gt;
</ code> </ pre>

其他选项是jquery验证或js验证,写js 在视图或外部.js文件</ p>

 &lt;?php 
data = array(
'name'=&gt; 'username',
'id'=&gt; 'username',//使用id进行jquery验证$('#username')。on('blur',function(){});
'value'=&gt; 'johndoe',
'maxlength'=&gt; '100',
'size'=&gt; '50',
'style'=&gt; 'width:50%'
'onBlur'=&gt; 'email_validate();' //用于javascript验证
);

echo form_input($ data);
?&gt;
</ code> </ pre>

我无法 评论,这就是为什么发布为答案</ em> </ p>
</ div>

展开原文

原文

you cant do that in Codeigniter, use Codeigniter default form validation library

View here

if you want to add css for validation errors then try set_error_delimeters()

if you have bootstrap then use

alert alert-danger

class, else create one class

$this->form_validation->set_error_delimiters('<div class="alert alert-danger">', '</div>');

see

[other suggestions]

instead of putting all error in the top, you can also try

<?php 
echo form_error('email');
form_input('email', 'E-MAIL', set_value('email'));
 ?>

other options is jquery validation or js validation, write js in view or external .js file

<?php
    data = array(
            'name'          => 'username',
            'id'            => 'username', //use the id for jquery validation $('#username').on('blur', function() { });
            'value'         => 'johndoe',
            'maxlength'     => '100',
            'size'          => '50',
            'style'         => 'width:50%'
            'onBlur' => 'email_validate();' //use this for javascript validation
    );

    echo form_input($data);
?>

im unable to comment, thats why posting as answer

douzhuanfen5923
douzhuanfen5923 <div id =“validation_errors”>在我们的视图中编写代码,只需添加$ this-> form_validation-> set_error_delimiters('<div class =“validation_errors”>','</ div>'); 在控制器中(在验证检查时)
大约一年之前 回复
dsbowmvth16379079
dsbowmvth16379079 谢谢,但我做了类似的事情:<div class =“email”> <?php echo form_input('email','E-MAIL',set_value('email')); ?> <br> <div id =“validation_errors”> <?php echo form_error('email'); ?> </ div> </ div>和CSS样式#validation_errors {color:red; }
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐