2010-11-25 7 views
5

は、それは...そして隠された入力の束とシリアライズさとPHPファイルに送信され、それが何らかの形でこのライン?:jQueryのシリアル化とencodeURIComponentで、私は、フォームの入力をエンコードURIに必要

にencodeURIComponentでを組み合わせることが可能です
var landingCreate = $(this).serialize(); 

UPDATE:

var landingCreate = $(this).serialize()+"&enc="+encodeURIComponent($('input[name=\'longform\']').val()); 

をしてURLを入力:

例えばこれを行う

http://www.smashingmagazine.com/2008/10/13/pricing-tables-showcase-examples-and-best-practices/ 

テキストボックスには、URLは変更されていません..すべてのダッシュとスラッシュなどを16進コードに変換するべきではありませんか?

UPDATE

ここでは完全なコードです。

<form id="createTokenLanding"> 
    <input type="text" name="longform" /> 
    <input type="hidden" name="domain" value="<?php echo rawurlencode($_SERVER['HTTP_HOST']); ?>" /> 
    <input type="hidden" name="useragent" value="<?php echo rawurlencode($_SERVER['HTTP_USER_AGENT']); ?>" /> 
    <input type="hidden" name="ip" value="<?php echo rawurlencode($_SERVER['REMOTE_ADDR']); ?>" /> 
    <input type="hidden" name="cookieuser" value="<?php echo rawurlencode($_COOKIE['littlr_user']); ?>" /> 
    <input type="submit" name="submit" value="Shorten" /> 
</form> 

<div id="result"> 
123 
</div> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.ajaxSetup ({ cache: false }); 
     $('#createTokenLanding').submit(function() { 
      var landingCreate = $('#createTokenLanding').serialize(); 
      $.ajax({ 
       url: 'action-create.php', 
       data: landingCreate, 
       success: function(responseText){ 
         $('#result').html(responseText); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 
+0

パスURIエンコードする入力は、ユーザーによって入力されたか、隠れた入力ですか? –

+0

ユーザーが入力しました。 – Gary

+0

"longform"は "this"の形式ですか? Ajaxのデータを送信するためにイベント送信を使用していますか? –

答えて

1

urlencode functionを試して、16進コードの場合は.replace()を使用できますか?

+1

フォームに入力テキストを挿入してserialize()するのはなぜですか?とにかく、あなたは何の代償として何を期待していますか? –

+1

私はこれを望んでいます:http://www.smashingmagazine.com/2008/10/13/pricing-tables-showcase-examples-and-best-practices/ http%3A%2F%2Fwwwになるためです。smashingmagazine.com%2F2008%2F10%2F13%2Fricing-tables-showcase-examples-and-best-practices%2F – Gary

+1

このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めてリンクを提供することをお勧めします参考のため。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – RMcLeod

4

jQuery.ajaxを使用すると、オプション "traditional"のドキュメントが表示されます。また、jQuery 1.4を使用する場合は、「jQuery.param」に「従来型」があります。 彼らがやることは、キーと値のための機能 "encodeURIComponentで" を使用している:

param = encodeURIComponent (key) + "=" + encodeURIComponent (value); 

find traditional setting
jQuery.param

あなたはこの例から見ることができUPDATE

、作品を "シリアライズ"郵便または郵便で送付される欄をはるかに上回ります。 データを送信するAjaxコードを置くことはできますか? example

+0

私が理解していないのは、.serialize()とencodeURIComponentがすべての文字をエスケープしていないからです。 – Gary

+0

上記の完全なコードを投稿しました。 – Gary

関連する問題