1

我正在尝试使 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 的方式替换它?

4

2 回答 2

1

尝试

<?php   
    if((isset($message))&&($message!='')){
        echo '<script> alert("'.str_replace(array("\r","\n"), '', $message).'"); </script>';
    }
?>
于 2012-10-02T16:03:52.460 回答
0

config/routes.php添加字符串:

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

wheremycontroller是您的控制器的类名,您在其中处理 ajax 查询,并且validation是此控制器的方法的名称。

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

$.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 );
    }
});
于 2012-10-02T16:34:51.837 回答