jquery сериализовать и кодировать URIComponent - PullRequest
5 голосов
/ 25 ноября 2010

Мне нужно, чтобы URI кодировал входные данные формы, которые затем сериализовались с кучей скрытых входных данных и отправлялись в файл PHP. Можно ли каким-то образом объединить encodeURIComponent в эту строку?:

var landingCreate = $(this).serialize();

ОБНОВЛЕНИЕ:

Делая это, например:

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-адрес не изменился .. разве он не должен преобразовывать все тире, косые черты и т. д. в шестнадцатеричные коды?

ОБНОВЛЕНИЕ

Вот полный код.

<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>

Ответы [ 2 ]

4 голосов
/ 25 ноября 2010

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

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

найти традиционную настройку jQuery.param

ОБНОВЛЕНИЕ

, как вы можете видеть из этого примера, «сериализация» хорошо работает над полями, которые нужно отправить по почте или получить,Можете ли вы поставить код Ajax, на который вы отправляете данные? пример

1 голос
/ 25 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...