我需要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>
答案 0 :(得分:4)
如果你使用jQuery.ajax,你可以看到“传统”选项的文档。另外如果使用jQuery 1.4,则在“jQuery.param”中使用“传统”。 他们所做的是使用函数“encodeURIComponent”作为键和值:
param = encodeURIComponent (key) + "=" + encodeURIComponent (value);
find traditional setting
jQuery.param
<强>更新强>
从这个例子可以看出,“序列化”在通过post或get发送的字段上运行良好。 你能把你发送数据的ajax代码? example
答案 1 :(得分:1)
您可以尝试urlencode function并使用.replace()来表示十六进制代码。