我在下面的代码中有一个弹出对话框。出于某种原因,对话框不会显示<a>
标记data-soldusers=\"$soldUsersstr\"
内传递的文本。我使用base64_encode来编码包含<select><option>
html标记的字符串。然后将其传递给使用codeiginter框架的弹出对话框。
$soldUsersstr=base64_encode($soldUsersstr);
echo "<p><div class=\"user-ads-action\"><a class=\"btn btn-info btn-xs\" data-toggle=\"modal\" href=\"#markSoldAds\" data-soldusers=\"$soldUsersstr\" $str> <i class=\"fa fa-mail-forward\"></i>".$this->lang->line('MarkSold')." </a></div></p>";
<div id="divSoldUser" name="divSoldUser" class="center">
</div>
<script>
$(document).ready(function() {
$('#markSoldAds').on('show.bs.modal', function(event) {
$("#postID").val($(event.relatedTarget).data('id'));
$("#divSoldUser").html(jsbase64_decode($(event.relatedTarget).data('soldusers')));
});
});
function jsbase64_decode(data) {
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
ac = 0,
dec = '',
tmp_arr = [];
if (!data) {
return data;
}
data += '';
do { // unpack four hexets into three octets using index points in b64
h1 = b64.indexOf(data.charAt(i++));
h2 = b64.indexOf(data.charAt(i++));
h3 = b64.indexOf(data.charAt(i++));
h4 = b64.indexOf(data.charAt(i++));
bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
o1 = bits >> 16 & 0xff;
o2 = bits >> 8 & 0xff;
o3 = bits & 0xff;
if (h3 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1);
} else if (h4 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1, o2);
} else {
tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
}
} while (i < data.length);
dec = tmp_arr.join('');
return dec.replace(/\0+$/, '');
}
知道为什么我的对话框根本没有显示任何文字吗?