我正在尝试使用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的方式替换它?
答案 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 );
}
});