Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery序列化和编码组件_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jquery序列化和编码组件

Javascript jquery序列化和编码组件,javascript,jquery,ajax,Javascript,Jquery,Ajax,我需要对表单输入进行URI编码,然后用一堆隐藏的输入序列化并发送到PHP文件。。是否有可能以某种方式将encodeURIComponent合并到此行中 var landingCreate = $(this).serialize(); 更新: 例如,这样做: var landingCreate = $(this).serialize()+"&enc="+encodeURIComponent($('input[name=\'longform\']').val()); 并输入网址: htt

我需要对表单输入进行URI编码,然后用一堆隐藏的输入序列化并发送到PHP文件。。是否有可能以某种方式将encodeURIComponent合并到此行中

var landingCreate = $(this).serialize();
更新:

例如,这样做:

var landingCreate = $(this).serialize()+"&enc="+encodeURIComponent($('input[name=\'longform\']').val());
并输入网址:

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>


能否尝试使用.replace()来表示十六进制代码

如果您使用jQuery.ajax,您可以看到选项“传统”的文档。如果您使用jQuery 1.4,则在“jQuery.param”中有“传统”选项 他们所做的是使用函数“encodeURIComponent”作为键和值:

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

更新

从这个示例中可以看出,“serialize”在通过post或get发送的字段上运行良好。 你能把你发送数据的ajax代码放进去吗?

您希望密码URI编码的输入是由用户输入的还是隐藏的输入?“longform”的格式为“this”?。您正在使用事件提交为Ajax发送数据?是的,有一个似乎有效的命令:“action create.php?”action-create.php?u=1290705763550&longform=http%3A%2F%2Fgoogle.com%2F&domain=host&useragent=ua&ip=ip&cookieuser=cu“action-create.php将数据直接发送到数据库中,即使使用序列化,url也不会进入数据库编码。。它仍然包含斜杠等。为什么不将输入文本插入表单并序列化()?无论如何,你期望得到什么回报?我想要的是:成为http%3A%2F%2Fwww.smashingmagazine.com%2F2008%2F10%2F13%2Fpricing tables showcase examples and best practices%2F虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面更改,仅链接的答案可能会无效。我不明白的是,为什么.serialize()和encodeURIComponent没有转义开头的所有字符。。