2010-11-25 2 views
5

мне нужно URI кодирования формы ввода, который затем сериализованные с кучей скрытых входов и отправлен в PHP файл .. Можно ли какое-то образом объединить encodeURIComponent в эту линию ?:JQuery сериализация и 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 без изменений .. не должно ли оно преобразовывать все штрихи и слэши и т. Д. В шестнадцатеричные коды?

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 для передачи, пользователем или является скрытым вводом? – 2010-11-25 14:22:38

+0

Это введено пользователем. – Gary 2010-11-25 14:23:56

+0

«longform» находится в форме «this» ?. вы используете отправку событий для отправки данных для Ajax? – 2010-11-25 15:06:59

ответ

1

Вы можете попробовать urlencode function и использовать .replace() для шестнадцатеричных кодов.

4

Если вы используете jQuery.ajax, вы можете увидеть документацию для опции «традиционный». Также, если вы используете jQuery 1.4, есть «традиционный» в «jQuery.param». то, что они делают это с помощью функции "encodeURIComponent" для ключа и значения:

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

find traditional setting
jQuery.param

UPDATE

вы можете видеть из этого примера, "сериализации" работает над полями, которые будут отправляться по почте или получать. Можете ли вы поместить код ajax, на который вы отправляете данные? example

Смежные вопросы