1

ログインフォームが固定サイズであるため、Ajax で動作するように Ion 認証を適応させようとしています。フォームが間違ったデータで送信されたときにエラーメッセージを警告したいと考えています。

メッセージは、次のようにコントローラーから返されます。

$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";

ここmycontrollerで、はコントローラーのクラス名であり、ここで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 に答える