-2

我发现这个用于进行预览的脚本有点类似于在 stackoverflow 上使用的脚本。当用户输入帖子时,我希望它在预览中显示之前被转换为 php 字符串。这将是为了使用 mysql_real_escape_string 以及其他东西。

如何在显示之前将其变成 php 字符串?在我逃脱了字符串之后,知道如何让它再次显示也是非常好的。

它包含本质上包含这两个部分的代码

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>

谢谢

4

1 回答 1

0

我认为有一点混淆。许多开发人员一开始并不理解 javascript 是在客户端呈现的,而模板(在您的情况下是 php 代码)是在服务器端呈现的。

这是什么意思?

这意味着服务器正在运行向浏览器输出和 HTML 字符串的 php 代码。此 HTML 字符串包含带有 javascript 的脚本段。一旦 php 代码完成,代码就会离开服务器并通过网络传输到浏览器。一旦到达浏览器,浏览器就不知道是哪个代码生成了 HTML。它也可以是静态资源。

为了在用户输入上运行 php 代码,用户输入必须返回服务器。为了向用户显示任何代码输出,输出必须从服务器返回到浏览器。

此往返以两种方式之一完成。第一个是表单,刷新整个页面(不适合这种情况)。另一个是AJAX。

AJAX 是一种将小块信息发送到服务器,在服务器端呈现它们,并在呈现为 javascript 函数后将它们取回的方法。这有点像将 textarea 输入转换为“php 字符串”。实际发生的是 - 您将文本区域输入发送到服务器,服务器将呈现一个 php 模板(在其中它会简单地对数据操作“mysql_real_escape_string”函数),呈现的结果将返回到一个 javascript回调,然后你可以在“预览”div中取悦它。

这是我找到的关于使用 jquery 的 ajax 和 php的很酷的教程。(使用jQuery)

希望这可以帮助。

javascript 代码应如下所示

$.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"]) ?>

就是这样......

于 2012-05-11T21:22:21.660 回答