我不能为我的生活弄清楚这段代码中的什么是摆脱&amp ;.如果有人输入了http://example.com/?ref=me&id=1
这样的网址,我需要在回显中显示整个网址。但它正在切断&。之后的所有内容。
以下是正在使用的代码。
HTML:
<div class="toolbar">
Enter the site URL that people will go to when they click your banner and click update to store it:<br>
<input id="ban<?php echo $key;?>" type="text" value="" size="100"> <input type="button" class="buttonHAdd" value="Update" onclick="updateBannerURL('<?php echo $directoryfile ;?>', 'ban<?php echo $key;?>')"><br>
Use the following HTML to display the banner on your site:<br><span id="htmlban<?php echo $key;?>" style="background-color: #ffffff"></span>
</div>
脚本:
function updateBannerURL(bannerFile, id) {
if($("#"+id).val() == "") {
alert("You have not entered a site url");
return;
}
$.ajax({
type: "POST",
url: "update.banner.php",
data:'m='+$('#memberId').val()+'&b='+bannerFile+'&u='+$("#"+id).val(),
dataType: 'json',
success: function(data, textStatus) {
$('#html'+id).text(data.bannerHtml);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$('.workareaTip').html('Hmm... Looks like an error occurred.');
}
});
}
PHP文件update.banner.php
<?php
$domain = 'https://example.com/banner';
$u = $_POST['u'];
$b = $_POST['b'];
$m = $_POST['m'];
$array = array('bannerHtml'=>
'<a href="'.$u.'"><img src="'.$domain.'/banners/'.$m.'/'.$b.'" border=""/><a/>'
);
echo json_encode($array);
?>
使用该代码,我可以输入:http://example.com/?ref=me&id=1
,这就是回复的内容:http://example.com/?ref=me
完全忽略了&符之后的所有内容。
答案 0 :(得分:4)
您需要在每个变量上使用encodeURI()
对要发送的数据进行编码,或者只是正确传递数据:
data: {
m: $('#memberId').val(),
b: bannerFile,
u: $("#"+id).val()
},