Na wstępie witam, to mój pierwszy post.
Napisałem sobie prościutki formularz i skrypt w php do skanowania na urządzeniach w sieci. Problem w tym, że podczas wykonywania skryptu użytkownik nie wie czy skanowanie się rozpoczęło albo czy w ogóle coś się dzieje, dlatego chciałem dorzucić jakiś 'activity indicator' aby user wiedział, że ma czekać. Zainteresowałem się więc AJAX`em, pozmieniałem co nieco i oto moje wypociny, zastrzegam, że nie jestem webmasterem toteż mam nikłe doświadczenie.
Próbowałem dodać w funkcji Skanuj() dodatkowo onLoading, ale po dodaniu nie działają obie funkcje, pewnie coś robię źle, tylko nie wiem co...
formularz:
<meta http-equiv='Content-type' content='text/html; charset=utf-8' />
<script type='text/javascript'>
function Pokaz() {
advAJAX.get({
url : 'scanner_status.php',
parameters : {
'skanery' : document.getElementById('skanery').value
},
onSuccess : function(obj) {
document.getElementById('status').innerHTML = obj.responseText;
}
});
}
function Skanuj(frm) {
advAJAX.get({
url : 'skan.php',
parameters : {
'skanery' : frm.skanery.value,
'plik' : frm.plik.value
},
onSuccess : function(obj) {
document.getElementById('status').innerHTML = obj.responseText;
}
});
}
<!-- <form action='skan.php' method='GET'> -->
<form onsubmit='Skanuj(this); return false'> wybierz skaner...
<select name=skanery id='skanery' onchange='Pokaz()'>
<?php
$wynik = exec("lpstat -v | cut -d':' -f3",&$tablica);
for($i=0; $i<(sizeof($tablica)); $i++){
$nazwa = exec("lpstat -v | grep $tablica[$i] | cut -d' ' -f3 | tr -d ':'");
echo ("<option value=$tablica[$i]> $nazwa");
}
?>
nazwa pliku wyjściowego...
<input type=text name=plik><br> <input type=submit value='Skanuj'><br/>
Dodam, że funkcje w tej postaci działają poprawnie, znaczy tak jak chcę (bez animacji ładowania).
skan.php
<?php
$plik=$_GET['plik'];
$scan_dev=$_GET['skanery'];
if (empty($plik)) $plik="skan";
$full_output_file="/srv/www/htdocs/sanewi/tmp/".$plik.".jpg";
$output_file=$plik.".jpg";
$tmp_file="/srv/www/htdocs/sanewi/tmp/tmp.tmp";
$command = "scanimage -d hpaio:".$scan_dev." --resolution 300 >".$tmp_file." && convert ".$tmp_file." jpeg:".$full_output_file.
//header('Content-Type: application/octet-stream');
//header('Content-Disposition: attachment; filename='.$output_file);
//readfile($full_output_file);
?>