Za pomocą AJAX odczytuje z pliku na serwerze postęp wykonania mojego skryptu php a jednocześnie skrypt php zapisuje wartość postępu do pliku.
kod strony:
CODE
<body link="#FF0000" alink="#800000" bgcolor="#6865A3" text="#FFFFFF">
<center>
<?php
$cfg = fopen("config.cfg", "r");
$conf = fgets($cfg, 50);
$config = explode(';',$conf);
$pole_marza = $config[0];
$pole_vat = $config[1];
fclose($cfg);
?>
<script language="JavaScript">
<!--
var id;
if (window.XMLHttpRequest)
{
ObiektXMLHttp = new XMLHttpRequest(); }
else if (window.ActiveXObject)
{
ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
// druga część kodu
function sprawdz_postep() {
if(ObiektXMLHttp)
{
var cell = document.getElementById('div');
ObiektXMLHttp.open("GET", 'http://boss/ceny/towary/postep.cfg');
ObiektXMLHttp.onreadystatechange = function()
{
if (ObiektXMLHttp.readyState == 4)
{
cell.innerHTML = '<font size="+2"><b>Postęp '+ObiektXMLHttp.responseText+'</b></font>';
}
}
// trzecia część kodu
ObiektXMLHttp.send(null);
}
}
function startuj() {
sprawdz_postep();
id = setInterval('sprawdz_postep();', 1000);
}
function wylacz(){
if (document.forms[0].aktualnij[2].checked==true || document.forms[0].aktualnij[3].checked==true)
{
document.forms[0].pole_marza.disabled=true;
document.forms[0].pole_vat.disabled=true;
if (document.forms[0].aktualnij[2].checked==true)
{
document.forms[0].symbol_zaw.disabled=false;
}else{
document.forms[0].symbol_zaw.disabled=true;
}
}else{
document.forms[0].pole_marza.disabled=false;
document.forms[0].pole_vat.disabled=false;
if (document.forms[0].aktualnij[2].checked==true)
{
document.forms[0].symbol_zaw.disabled=false;
}else{
document.forms[0].symbol_zaw.disabled=true;
}
}
}
function Validate(){
if (document.forms[0].plik1.value=='')
{
alert("Podaj ścieżke do pliku")
return false;
}else if ((document.forms[0].aktualnij[0].checked==false) && (document.forms[0].aktualnij[1].checked==false) &&
(document.forms[0].aktualnij[2].checked==false) && (document.forms[0].aktualnij[3].checked==false))
{
alert("Wybierz typ operacji: \n\nAktualizacja cen \nSymulacja \nWyświetl nieaktualne towary \nWyświetl nowe towary")
return false;
}else{
startuj();
return true;
}
}
</script>
<FORM name="cennik" ENCTYPE="multipart/form-data" ACTION="uaktualnij.php" METHOD=POST onSubmit="return Validate()"><br>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="10000000">
Plik do wysłania: <INPUT NAME="plik1" TYPE="file"><br><br>
<table width="600"><tr>
<td valign="top">
<input type="radio" name="aktualnij" value="A" onclick="wylacz()"> Aktualizacja cen<br>
<input type="radio" name="aktualnij" value="S" onclick="wylacz()"> Symulacja<br>
Marża: <input type="text" name="pole_marza" value="<?php echo $pole_marza.' %';?>"><br>
VAT: <input type="text" name="pole_vat" value="<?php echo $pole_vat.' %';?>">
</td><td valign="top">
<input type="radio" name="aktualnij" value="O" onclick="wylacz()"> Wyświetl nieaktualne towary<br>
Początek symbolu: <input type="text" name="symbol_zaw" DISABLED><br><br>
<input type="radio" name="aktualnij" value="N" onclick="wylacz()"> Wyświetl nowe towary<br>
</td></tr><table>
<INPUT TYPE="submit" VALUE=" OK "><br>
</FORM>
<br>
<div id="div"></div>
<br><br>
</center>
<br><br>
</body>
</html>
I w konsoli FF wyskakuje mi blad:
CODE
Błąd: uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED)
[nsIXMLHttpRequest.send]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame ::
http://boss/ceny/uaktualnij.php :: sprawdz_postep :: line 31" data: no]
Co jest nie tak?
pozdrawiam
Dariusz