如何在警告框中显示codeigniter表单验证消息

时间:2012-10-02 15:39:21

标签: php javascript codeigniter

我正在尝试使用Ion auth来使用ajax,因为我的登录表单是固定大小的,我想在提交表单时提示错误信息时提示错误消息。

从控制器返回消息,如下所示:

$this->session->set_flashdata('message', $this->ion_auth->messages());

并在视图中选择:

<div id="infoMessage"><?php echo $message;?></div>

我试图按如下方式显示它们:

<?php   if((isset($message))&&($message!='')){
            echo '<script> alert("'.$message.'"); </script>';
        }
?>

这不起作用,警报没有显示,我已经删除了消息分隔符,但这没有帮助。我唯一的想法是它必须与codeigniter在我的javascript中创建一个新行的方式有关,因为它出现如下:

<script>
alert('The Identity field is required.
The Password field is required.');
</script>

如何摆脱这个换行符并以不会破坏我的js的方式替换它?

2 个答案:

答案 0 :(得分:1)

尝试

<?php   
    if((isset($message))&&($message!='')){
        echo '<script> alert("'.str_replace(array("\r","\n"), '', $message).'"); </script>';
    }
?>

答案 1 :(得分:0)

config/routes.php添加字符串:

$route["action"] = "mycontroller/validation";

其中mycontroller是控制器的类名,处理ajax查询,validation是此控制器的方法名称。

当您通过jQuery方法.ajax()或别名.post()传递数据时,您可以使用documentation中描述的服务器响应结果:

$.post( "validation",
{
    username: $( '#username' ).val(),
    password: $( '#password' ).val()
},
function( data )
{
    alert( 'message: ' + data );
});

$.ajax({ 
    url: "validation",
    username: $( '#username' ).val(),
    password: $( '#password' ).val()
}).done( function( data )
{
    alert( 'message: ' + data );
});

$.ajax({
    url: 'validation',
    data: { username: $( '#username' ).val(), password: $( '#password' ).val() }
    success: function( data ) 
    {
        alert( 'message: ' + data );
    }
});