2016-05-09 11 views
3

からバックスラッシュ(\)文字を削除します。のDataTableには、これは、サーバーにAJAXを介してデータを送信するDataTableのjQueryプラグインを使用するために私のコードであるデータ

$('#allLessonAttachmentsTable').DataTable({ 
    processing: true, 
    serverSide: true, 
    "bSort": false, 
    "responsive": true, 
    ajax: { 
     url: 'http://lms.dev/admin/getFilesList', 
     data: function (d) { 
      d.id = '8', 
      d.type = 'App\Lesson' 
     } 
    }, 
    columns: [ 
     {data: 'checkbox', name: 'checkbox', "width": "20px"}, 
     {data: 'picture', name: 'picture', 'className': 'text-center'} 
    ] 
}); 

ご覧のように、サーバに送信されたtypeパラメータは\が含まれています(バックスラッシュ)。しかし、私がLaravelバックエンドでそれを取得すると、バックスラッシュ文字は削除されます。

問題とは何ですか、なぜそれが削除されるのですか?

+0

あなたが投稿する前の状態を見てください。これがプレビューというものです。 –

答えて

5

JavaScriptにはエスケープ文字として\があります。あなたはそれをエスケープするために\\を使用する必要があります。あなたのコードは、に変更します。コンソール自体では

d.type = 'App\\Lesson' 

、JavaScriptが\\\をどのように扱うか見ることができます:

enter image description here

全部がPHPによって生成されている場合は、あなたがPHPのを使用してみてくださいaddslashes()ファンクションは、文字列に適した出力を生成します。

+0

'd.type'パラメータは次のようなlaravelメソッドで生成されます:' d.type = '{!! get_class($ lesson)!!} '' –

+1

@ A.B.Developerそれを生成するコードを変更して、2つの '\'を提供するか、 '\'をエスケープする必要があります。 PHPでは 'addslashes()'という関数があります。なぜそれを試してみませんか? –

+0

@ A.B.Developerマニュアルへのリンクを追加しました。 –

関連する問題