2016-05-10 74 views
4

這是使用AJAX我第一次我已經在它讀了,也是我第一次用JS這樣一種動態地創建網頁。我想我一直在困惑自己。PHP/JS/AJAX/HTML:

我試圖動態地創建一個新的餐廳網頁,所以管理員點擊按鈕的onclick新網頁創建的每個時間,與新的餐廳網頁,我已經創建的內容。

目前我已經得到儘可能按下一個按鈕,一個新的網頁成功創建,但是,我不知道如何訪問新的網頁,我也想顯示一個鏈接到新創建的網頁作爲它被創建,例如之前使用。例如在js中顯示我的點按鈕之前的動態功能。

HTML

<html> 
<body> 
<button onclick="makePage()">click</button> 
<script src="makePage.js"> 
</script> 
</body> 
</html> 

JS

function makePage(){ 
var xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange = function(){ 
if(xmlhttp.readyState==4 && xmlhttp.status==200) 
    alert("webpage " + xmlhttp.responseText + " was successfully created!"); 
} 
var content = "<html><head><meta charset=\"utf-8\" /> </head><body>new website<script>alert(\"test\")</script></body></html>"; 
xmlhttp.open("GET","makePage.php?content=" + content,true); 
xmlhttp.send(); 

}

PHP

<?php 
$content = $_GET["content"]; 
$file = uniqid() . ".html"; 
file_put_contents($file, $content); 
echo $file; 
?> 

有什麼建議?指導或相關頁面,我可以閱讀。任何事情都將非常感激。

回答

2

在你的js做這樣的事情,而不是警報:

if(xmlhttp.readyState==4 && xmlhttp.status==200){ 
    var createA = document.createElement('a'); 
    var createAText = document.createTextNode(xmlhttp.responseText); // or whatever name you need 
    createA.setAttribute('href', xmlhttp.responseText); 
    createA.appendChild(createAText); 
    document.body.appendChild(createA); // or you can create some <div> or whatever and append it to that 
} 

這是普通的JavaScript,但使用jQuery你可以用ajaxget功能做更容易。

+0

太好了!看着它,它看起來像我在找什麼。謝謝你抽出時間。我會稍後再嘗試一下,以及看看你提供的鏈接 – jerneva