Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136

    problema ajax

    Salve a tutti,
    per esercitarmi nell'uso di xmlhttprequest ho pensato di fare il seguente eserciziorelievo del path di foto dal server e invio al browser per la visualizzazione.In poche parole una gallery.
    di seguto i file:

    javascript:
    codice:
    window.addEventListener('load',init,'false');
    var image_index=1;
    var http_req;
    var images=new Array();
    function init(){
    /*inizializza la pagina:aggiunge l'evento onclick al tag image,richiede al server le immagini,inizializza la pagina con la prima foto*/
    	document.getElementById("img").addEventListener('click',change_image,'false');
    	request_image();
    	document.getElementById("img").src=images[0].src;//inizializza la pagina con la prima foto
    }
    
    function request(){
    	var http_req;
    	try{
    		http_req=new XMLHttpRequest();
    	}
    	catch(failed){
    		http_req=false;
    	}
    	if( !http_req ){
    		return false
    	}
    	return http_req;
    }
    function request_image(){
    	//inizializza oggeto xmlhttprequest
    	http_req=request();
    	if(!http_req){
    		alert("Impossibile creare la richiesta!");
    		return;
    	}
    	var url="../php/gallery_j.php";
    	http_req.open("GET",url,'false');//not an asinchronous request
    	http_req.onreadystatechange=load_images;
    	http_req.send(null);
    }
    function load_images(){
    	if( http_req.readyState==4){
    		if( http_req.status==200){
    			var response=http_req.responseText;
    			var jObj=JSON.parse(response);
        for(var i=0;i<jObj.length;i++){
    		        //alert(jObj[i].path+" "+jObj[i].width+" "+jObj[i].height);
    			images[i]=new Image();
    			images[i].src=jObj[i].path;
    			images[i].width=jObj[i].width;
    			images[i].height=jObj[i].height;
    		   }
    		}
    		else{
    			alert("Error stauts: "+http_req.status);
    		}
    	}
    }
    function change_image(){
    	if( image_index < images.length){
    		document.getElementById("img").src=images[image_index].src;
    		image_index++;
    	}
    	else{
    		image_index=0;
    		document.getElementById("img").src=images[image_index].src;
    		image_index++;
    	}
    }
    La funzione init() viene chiamata all'atto del caricamento della pagina.ll problema e relativo solo allo javascript.Infatti,il file php alla quale viene fatta la richista dei file li trasferisce correttamente.La chiamata ad http_req.open("GET",url,'false'); è asincrona perche aspetto che i percorsi al file siano inviati prima di poter fare il resto.Il problema nasce quando carico l'array di immagini(parte in rosso) e ottengo questo errore:"NetworkError: 404 Not Found - http://localhost/gallery/html/undefined".Il percorso http://localhost/gallery/gallery.html è dove risiede il file html.Grazie per l'aiuto.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A) Stai provando il locale con un web-server installato (apache) o da filesystem? (P.S. ajax necessita di tecnologia server per funzionare in locale)
    B) http_req.open("GET",url,'false') togli gli apici false/true altrimenti e stringa non valore boleano
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Ciao,
    si sono in locale e sto usando lammp.Il problema si presenta sempre nella parte in rosso l'array images non risulta essere definito.Da notare che è stato definito globalmente.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    a naso direi che il json non è corretto... se togli il commento all'alert nel for cosa ti stampa?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Mi scrive Undefined......

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    come temevo il json che recuperi da php non è corretto
    metti un alert per vedere com'è valorizzata la response, altrimenti puoi chiedere aiuto nella sezione php

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma cosa vi costa essere un po' piu' specifici nei titoli?
    da oggi personalmente tolleranza zero, si chiude direttamente senza aggiungere altro

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Firebug riporta il seguente:
    l'oggetto json ha il seguente valore:
    jObj="[{"path":"../Immagini/16_10_San_Michele/IMG_0726.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0799.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0908.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0834.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0744.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0856.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0748.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0818.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0752.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0861.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0751.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0800.JPG","width":"4752","heigth":"3168"},{"pa th":"../Immagini/16_10_San_Michele/IMG_0835.JPG","width":"4752","heigth":"3168"}]"

    mentre response:
    response=""[{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0726.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0799.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0908.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0834.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0744.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0856.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0748.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0818.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0752.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0861.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0751.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0800.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"},{\"path\":\"..\/Immagini\/16_10_San_Michele\/IMG_0835.JPG\",\"width\":\"4752\",\"heigth\":\"316 8\"}]""

    grazie per l'aiuto.

    P.S.mi scuso con gli amministratori per la superficialità nella scelta del titolo.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    "[{"path":"../Immagini/16_10_San_Michele/IMG_0726.JPG","width":"4752","heigth":"3168"},
    codice:
    for(var i=0;i<jObj.length;i++){
    			images[i]=new Image();
    			images[i].src=jObj[i].path;
    			images[i].width=jObj[i].width;
    			images[i].height=jObj[i].height ;
    		   }

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Corretto ma il problema rimane.Altri suggerimenti?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.