2010-11-25 5 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"에서 "traditional"을 사용합니다. 는 그들이하는 일은 키와 값의 기능 "에 encodeURIComponent"을 사용할 수 있습니다 :

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

find traditional setting
jQuery.param

UPDATE

이 예에서 볼 수

이 작품을 "직렬화" 게시물을 보내거나받을 필드를 잘 넘어야합니다. 데이터를 보내는 아약스 코드를 넣을 수 있습니까? example

+0

내가 이해하지 못하는 이유는 .serialize()와 encodeURIComponent가 모든 문자를 이스케이프 처리하지 않기 때문입니다. – Gary

+0

위의 전체 코드를 게시했습니다. – Gary