2012-04-26 72 views
-2

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

如何在显示之前将它变成一个php字符串?在我逃离字符串之后知道如何再次显示它也是非常好的。

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

<script type="text/javascript"> 
    function preview(field) { 
     var p = document.getElementById('input_exercise'); 
     p.innerHTML = field.value; 
    } 

</script> 
<textarea style="width:500px; height:150px;" onkeypress="preview(this);"></textarea> 
<p id="input_exercise"></p> 

感谢

+2

mysql_real_escape_string在预览时做什么?什么是你正在谈论的“PHP字符串”? – 2012-04-26 14:52:55

+4

你是什么意思的PHP字符串? – mpm 2012-04-26 14:53:39

+0

如果我理解你是正确的,那么这是不可能的你想要的方式。您可以对包含该字符串的服务器使用ajax请求,在服务器上使用PHP进行处理,并使用修改过的字符串进行响应。这样你可以用PHP代码“交错”你的JavaScript。 – 2012-04-26 14:55:24

回答

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) } 
     }); 

你应该在“/渲染字符串的预览”,这将只是这样做(不是PHP开发人员添加资源.. )

<? mysql_real_escape_string (POST["text"]) ?> 

就是这样....