Pagina 1 di 1

Java Script in locale

Inviato: lun 16 ott 2006, 16:41
da alex.franci
Ciao a tutti!
Ho installato Apache (urrà!) e PHP (urrà!), ma non mi funziona Java Script.

Cioè... nel mio file php c'è dentro un rimando ad un file Java Script.

Questo è il Java Script [popup.js]:

Codice: Seleziona tutto

function PrevFoto(img){
  foto1= new Image();
  foto1.src=(img);
  Controlla(img);
}
function Controlla(img){
  if((foto1.width!=0)&&(foto1.height!=0)){
    viewFoto(img);
  }
  else{
    funzione="Controlla('"+img+"')";
    intervallo=setTimeout(funzione,100);
  }
}

function viewFoto(img){
  largh=foto1.width+20;
  altez=foto1.height+25;
  stringa="width="+largh+",height="+altez;
  finestra=window.open(img,"",stringa);
}
e questa è la pagina php [prova.php]:

Codice: Seleziona tutto

<html>
<head>
<title>prova</title>
<script type="text/javascript" src="./popup.js">
</head>
<body>
	
	<?php

	//* restituisce true se il file non è un'immagine *
	function fImage($file){
		$ext=strtolower(substr($file,-3,3)); //ottiene l'estensione del file
			switch ($ext) {
				case "jpg":
				  break;
				case "peg":
				  break;
				case "bmp":
				  break;
				case "png":
				  break;
				case "gif":
				  break;
				case "iff":
				  break;
				case "tif":
				  break;
				default:
					return true; //se non è un'immagine da true
			}
	}

		$dir=".";
		$handle=opendir($dir);

		//* inserisce le immagini nel documento *
			while ($file = readdir($handle)) {
				if (fImage($file) != true) {
				echo "<a href=\"".$file."\" onclick=\""PrevFoto('".$file."');return(false)"\">";
				echo "<img src="."\"thumb.php?img=".$file."\">";
				echo "</a>";
				echo "\n"."<br>"."\n";
				}
			}
		
		closedir ($handle);
	?>

</body>
</html> 
Se io la carico da locale, non mi visualizza assolutamente nulla. Se invece la carico da web (http://alexfranci.altervista.org/provaphp/prova.php) non da problemi.

Allora ho provato a togliere dal prova.php locale lo script java e funziona.

Che può essere? Grazie mille

Inviato: lun 16 ott 2006, 16:47
da whites11
php funziona correttamente?
prova, magari, con un file php con questo contenuto...

Codice: Seleziona tutto

<?php
phpinfo();
?>

Inviato: lun 16 ott 2006, 16:56
da capitanfuturo
A me sembra che ci siano delle virgolette di troppo, prova ad usare gli apici ' al posto del tag \" ed infine il javascript deve essere all'interno del testo html e non php se no non viene interpretato... questa riga mi convince poco:

Codice: Seleziona tutto

echo "<a href=\"".$file."\" onclick=\""PrevFoto('".$file."');return(false)"\">";
prova con

Codice: Seleziona tutto

echo "<a href='".$file."'onclick='PrevFoto('".$file."')>";
echo "<img src='thumb.php?img=".$file."'>";
echo "</a><br>"; 

Inviato: lun 16 ott 2006, 18:58
da alex.franci
grazie a tutti per le risposte...

mi sa che c'era qualche casino con le virgolette e gli apici... con questa riga funziona:

echo "<a href=\"".$file."\" onclick=\"PrevFoto('".$file."');return(false)\">";

mi sa che gli apici non gli piacevano :D

posso farvi un'altra domanda? quando apro una directory col comando opendir, nella guida che ho letto (da html.it) mette un handle:

$handle=opendir($dir);

che cos'è? a cosa serve? so che è necessario, ma non ne capisco l'utilità...

grazie mille

Inviato: lun 16 ott 2006, 19:36
da capitanfuturo
Secondo me ti conviene leggere direttamente la documentazione ufficiale di php
vai qui http://it.php.net/manual/it/function.opendir.php.
La variabile che chiamano handle è un punatatore all'oggetto resource che ti viene restituito dalla funzione opendir()

Inviato: lun 16 ott 2006, 19:38
da albatros
E' la "maniglia" che ti consente di lavorare con la directory, è una struttura che fa riferimento alla directory che hai aperto...
Se dovessi aprire due directory, potresti usare
$uno=opendir(nome_prima_directory);
$due=opendir(nome_seconda_directory);

Con $uno o $due fai poi riferimento all'una o all'altra, come viene fatto anche nel tuo caso con il ciclo while successivo...
Noterai che il comando per leggere la tua prima directory fa riferimento a $handle e così pure closedir alla fine...