我正在使用以下內容更新一個名爲'output'的DIV。這工作正常,但有一個例外,我想要echo條目來更新父頁面。Ajax/PHP更新DIV
<input type='button' name='Send' value='submit' onclick="javascript: formget(this.form, 'foo.php');">
我是foo.php運行一系列的exec()的命令,之間的每個命令是我想顯示echo語句的問題:
<script type="text/javascript">
<!--
var divid = 'output';
var loadingmessage = '<img src="working.gif">';
function AJAX(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
}
catch (e){
alert("Your browser does not support AJAX!");
return false;
}
}
}
}
function formget(f, url) {
var poststr = getFormValues(f);
postData(url, poststr);
}
function postData(url, parameters){
var xmlHttp = AJAX();
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4){
document.getElementById(divid).innerHTML=loadingmessage;
}
if (xmlHttp.readyState == 4) {
document.getElementById(divid).innerHTML=xmlHttp.responseText;
}
}
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", parameters.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(parameters);
}
function getFormValues(fobj)
{
var str = "";
var valueArr = null;
var val = "";
var cmd = "";
for(var i = 0;i < fobj.elements.length;i++)
{
switch(fobj.elements[i].type)
{
case "select-one":
str += fobj.elements[i].name +
"=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&amp;";
break;
}
}
str = str.substr(0,(str.length - 1));
return str;
}
//--></script>
這是使用所謂的在輸出div。
所以它會這樣做:
echo「archive files」; exec(「tar -cvf bar.tar bar.txt foo.txt」);
回顯「備份/用戶」; exec(「tar -cvf /user.tar/user/*」);
我想用戶看到working.gif,但在它下面每個來自foo.php的echo聲明 可以這樣做,怎麼做?
感謝
可以這樣做或我會更好地使用jQuery?如果是的話如何?任何鏈接都會有所幫助!謝謝 – MacMan
我;我試過使用ob_flush(); flush();每個回聲命令後,但沒有幫助。有任何想法嗎 ? – MacMan