2012-03-27 3 views
1

jqueryフレームワークを使用してajax submitを使用して基本フォームを作成しています。 これは私のコードです:アクセントはjquery ajaxリクエストとcodeigniterで提出します

$('form#contact_form').submit(function() { 
    $.ajax({ 
     type: $(this).attr('method'), 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     success: function(data) { 
     } 
    }); 
}); 

そして、私は結果を表示するために、簡単なvar_dump($_POST)でPHPファイルを使用します。

私は単純なPHPページを調べてテストすると、完全に動作しています。

私がCodeIgniterの連絡先コントローラから問い合わせ機能を使ってテストするとき、アクセントであるフォームのすべてのアイテム(特殊文字ではなく、 "éàèù"のようなアクセントのみ)は空です。

詳細については、私のすべてのファイルにはUTF-8エンコーディングがあります。

誰かがこの問題を解決する方法を知っていますか? ありがとう、

+0

コントローラで$ _POSTまたは$ this-> input-> post()を使用していますか?投稿データが実際にどのように見えるのかをFirebugやChrome開発者ツールで確認できますか?そしてFYI、submitイベントには 'return false;'という行はありません。 –

+0

$ _POSTと$ this-> input-> post()を試してみましたが、同じ問題があります。 – alexmngn

+0

私の開発ツールでは、すべてのパラメータがコントローラに正しく送信されています – alexmngn

答えて

0

私はこの問題を発見しました。

実際、CodeIgniterフレームワークは、入力変数の入力ライブラリへの「クリーニング」を処理します。

私はMAMPサーバーから開発したので、そこからバグがあります。 UTF-8をエンコードする文字セットをutf-8に変更する必要があり、現在は動作しています。

ありがとうございます。

+0

この変更はどのように行ったのですか?私も同じ問題が発生しています! – Nyxynyx

0

最初に確認する:この条件では、UTF8ライブラリをcodeigniterで読み込みます。それらを1つずつテストし、それらがすべて真であるかどうかを確認してください。

if (
     preg_match('/./u', 'é') === 1     // PCRE must support UTF-8 
     AND function_exists('iconv')     // iconv must be installed 
     AND ini_get('mbstring.func_overload') != 1  // Multibyte string function overloading cannot be enabled 
     AND $CFG->item('charset') == 'UTF-8'   // Application charset must be UTF-8 
     ) 

第二に、 "_clean_input_data" という名前/ Input.phpライブラリ内の関数があります。おそらく、この機能はコントローラに到達する前にデータをクリーニングしています。

内部には3種類のクリーニングがあります。

// Clean UTF-8 if supported 
    if (UTF8_ENABLED === TRUE) 
    { 
     $str = $this->uni->clean_string($str); 
    } 

    // Remove control characters 
    $str = remove_invisible_characters($str); 

    // Should we filter the input data? 
    if ($this->_enable_xss === TRUE) 
    { 
     $str = $this->security->xss_clean($str); 
    } 
+0

私はあなたのテストをテストしています。私は自分のデータが、Ajaxによって送信された瞬間から関数によって受け取られる瞬間まできれいであると感じているので、親のコントローラでおそらく..解決策を探し続ける – alexmngn

関連する問題