我发现这个脚本的预览有点类似于stackoverflow上使用的那个。当用户输入帖子时,我希望它甚至可以在预览中显示之前转换为php字符串。这将是为了使用mysql_real_escape_string以及其他东西。
如何在显示之前将其变成php-string?在我逃脱字符串后,知道如何让它再次显示也是非常好的。
它基本上包含这两部分代码
1
<script type="text/javascript">
function preview(field) {
var p = document.getElementById('input_exercise');
p.innerHTML = field.value;
}
</script>
2
<textarea style="width:500px; height:150px;" onkeypress="preview(this);"></textarea>
<p id="input_exercise"></p>
由于
答案 0 :(得分:0)
我认为有点混淆。 很多开发人员一开始并不了解javascript是在客户端呈现的,而模板(在你的情况下是php代码)是在服务器端呈现的。
这是什么意思?
这意味着服务器正在运行php代码,并向浏览器输出HTML字符串。 此HTML字符串包含带有javascript的脚本段。 完成php代码后,代码将离开服务器并通过网络传输到浏览器。一旦进入浏览器,浏览器就不知道哪些代码生成了HTML。它也可能是一个静态资源。
为了在用户输入上运行php代码,用户输入必须返回服务器。 并且为了向用户显示任何代码输出,输出必须从服务器返回到浏览器。
这次往返是以两种方式之一完成的。 第一个是表单,它刷新整个页面(不适合这种情况。) 另一个是AJAX。
AJAX是一种向服务器发送小块信息,在服务器端呈现它们并在呈现为javascript函数后将其恢复的方法。这有点像将textarea输入转换为“php字符串”。 实际发生的是 - 你将文本区域输入发送到服务器,服务器将呈现一个php模板(其中它将简单地操作数据上的“mysql_real_escape_string”函数),渲染的结果将返回到javascript回调,然后你可以在“预览”div中取悦它。
Here a cool tutorial我发现了使用jquery的ajax和php。 (使用jquery)
希望这有帮助。
javaspcript代码应该类似于以下内容
$.ajax({ 'url' : '/render-string-for-preview',
'type':'post',
'data' : { 'text' : $("textarea").val() },
'success' : function(result) { $("#input_excercise").html( result ) }
});
你应该在“/ render-string-for-preview”上添加一个资源,它只会做一些像(不是php开发人员......)
<? mysql_real_escape_string ( POST["text"]) ?>
就是这样......