使用PHP函数弹出预览textarea

时间:2012-11-20 17:52:42

标签: javascript popup textarea preview

我想在弹出窗口中使用PHP函数制作textarea的弹出预览。

假设您在textarea中键入“Hello world”,然后单击“预览”,然后通过弹出的PHP函数将文本转换为“嘿嘿”(当然功能不是那么简单,那就是我之所以无法在纯粹的javascript中使用它。)

有可能这样做吗?

我知道它可以轻松地将表单发送到中间页面,但我必须将表单保留在后台...这就是我需要快速预览的原因。

我做了以下事情:

        function PreviewMe() {
          var newWin = window.open("", "_blank");
         newWin.document.write("<html><body>"+document.getElementById('myText').value+"</body></html>");
          newWin.document.close();
        }

<textarea id="myText"  ... /> 
<input type="submit" ... onclick="PreviewMe();">

显然它可以在不重新格式化的情况下工作,那么如何在弹出窗口中重新格式化这个结果呢?

使用XMLHttpRequest是否可能(并且可能是更好的选择)?

Thx!

2 个答案:

答案 0 :(得分:1)

是的,您应该使用XHR请求将数据发送到脚本,该脚本将返回您在客户端操作的数据。

答案 1 :(得分:0)

谢谢,最终它变得容易得多。

如果它可以帮助别人,这就是我所做的。 Js功能变为:

function PreviewMe() {
    var xhr = null;
    if (window.XMLHttpRequest || window.ActiveXObject) {
        if (window.ActiveXObject) {
            try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
        } else {
            xhr = new XMLHttpRequest(); 
        }
    } else {
        alert("XMLHTTPRequest not supported...");
        return;
    }
    xhr.open("POST", "page.php", true);
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
            document.getElementById('show').innerHTML = xhr.responseText;
        } 
    };      

    xhr.send("var="+document.getElementById('myText').value+"");
    return;
}

当然page.php包含我的PHP函数,show是打印结果的div的id。