我需要为我的网站刷新我的userprofile编辑页面。
我的用户建议添加“演示预览”,以便他们了解结果如何。
我使用了这个textarea
<textarea name="presentation">This is my presentation [b]with BBCodes[/b]</textarea>
上面我有#preview,我希望它更新,因为我在textarea中更改了某些内容,而bbCodes通过这个PHP命令“bbCode($ x)”“转换”为HTML“
基本上,我想用实际文本字段上方的转换版本显示输入textarea“live”的内容
我怎么能做到这一点?
答案 0 :(得分:0)
您需要使用Ajax
。我认为这必须帮助您解决问题
按照
答案 1 :(得分:0)
您将使用Ajax。
让其他页面运行一个等待几秒钟的javascript循环,然后通过ajax加载文件的内容,然后将其显示在您想要的区域。
使用jquery
答案 2 :(得分:0)
我不同意下面的答案。如果您进行AJAX调用,它应该一次,它应该为您提供要执行的转换的定义列表。实际的转换应该在客户端完成,否则你最终会在每次按键时向服务器发送请求!
以下是您如何做到这一点的示例:
// The array of regex patterns to look for
$format_search = [
/\[b\](.*?)\[\/b\]/ig,
/\[i\](.*?)\[\/i\]/ig,
/\[u\](.*?)\[\/u\]/ig
]; // note: NO comma after the last entry
// The matching array of strings to replace matches with
$format_replace = [
'<strong>$1</strong>',
'<em>$1</em>',
'<span style="text-decoration: underline;">$1</span>'
];
$('textarea').on('keyup', function() {
var preview = $(this).val().trim();
// Perform the actual conversion
for (var i = 0; i < $format_search.length; i++) {
preview = preview.replace($format_search[i], $format_replace[i]);
}
// show the preview in your div
$('#preview').html(preview);
});
Here's a demo fiddle。替换代码使用this answer.
我的建议是,如果您要使用AJAX,请使用它从数据源获取$format_search
和$format_replace
的定义,而不是使用它来解析替换。
答案 3 :(得分:0)
试试这段代码:
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
function myFunction(x)
{
var text = x.value;
$('#preview').show();
document.getElementById('preview').innerHTML=text;
}
</script>
</head>
<body>
<div id="preview" style="display:none"></div>
<textarea name="presentation" onkeyup="myFunction(this)"></textarea>
</body>
<style>
#preview{
width:200px;
height:auto;
border:1px solid black;
}
</style>
希望这是你问题的答案。