1

我想在弹出窗口中使用 PHP 函数对 textarea 进行弹出预览。

假设您在 textarea 中键入“Hello world”,然后单击“预览”,然后在弹出窗口中通过 PHP 函数将文本转换为“Hey you”(当然函数不是那么简单,这就是为什么我无法在纯 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 ?

谢谢 !

4

2 回答 2

1

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

于 2012-11-21T11:15:51.270 回答
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。

于 2012-11-21T12:24:18.123 回答