2012-11-20 20 views
1

我想使用彈出窗口中的PHP函數彈出textarea預覽圖。讓我們假設你在textarea中輸入「Hello world」,然後點擊「預覽」,然後在彈出窗口中通過PHP函數將你的文本轉換爲「Hey you」(當然這個功能並不那麼簡單,這就是爲什麼我不能在純JavaScript中適應這一點)。使用PHP函數彈出textarea預覽圖

有沒有可能這樣做?

我知道它可以很容易地將表單發送到中間頁面,但我必須保持窗體的背景...這就是爲什麼我需要快速預覽。

我做了以下內容:

 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是否可能(並且mayber更好的選擇)?

Thx!

+1

你不能用簡單的php,你需要javascript e/o客戶端編程語言來顯示彈出 – sbaaaang

+0

你認爲這可以用XMLHttpRequest完成嗎? – SuN

+0

我的意思是...顯示彈出的事件不能由PHP完成,那麼如果你使用一個PHP腳本,然後在JavaScript彈出窗口中顯示結果,它取決於你:) – sbaaaang

回答

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。

1

是的,您應該使用XHR請求將數據發送到腳本,該腳本將返回您在客戶端操縱的數據。