Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,805

    inviare upload files con ahahtext

    salve ragazzi sto facendo un lavoro dove usola classe ahahatext , dovrei passare anche dei files tipo immagini pero mi sono accorto che tutti i dati l invia tranne i files adesso comepotrei fare ?non me ne da errori funziona tutto tranne che non passa i files caricati, ho messo nel h print_r($_FILES); e mi da un array vuota cioe array(); mi aiutate? posto la classe
    codice:
    var completeAHAH = {
    
    	loading : 'loading data...',
    
    	ahah : function (url, target, delay, method, parameters) {
    
    	  if ( ( method == undefined ) || ( method == "GET" ) || ( method == "get" ) ){
    			
    			this.creaDIV(target, this.loading);
    			
    			if (window.XMLHttpRequest) {
    				req = new XMLHttpRequest();
    			} 
    			else if (window.ActiveXObject) {
    				req = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			if (req) {
    				req.onreadystatechange = function() {
    					completeAHAH.ahahDone(url, target, delay, method, parameters);
    				};
    				req.open(method, url, true);
    				req.send("");
    			}
    		}
    		if ( (method == "POST") || (method == "post") ){
    
    			this.creaDIV(target, this.loading);
    
    			if (window.XMLHttpRequest) {
    				req = new XMLHttpRequest();
    			} 
    			else if (window.ActiveXObject) {
    				req = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			if (req) {
    				req.onreadystatechange = function() {
    					completeAHAH.ahahDone(url, target, delay, method, parameters);
    				};
    				req.open(method, url, true);
    				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    				req.send(parameters);
    			 }
    		}
    	},
    	
    	creaDIV : function (target, html){
    
    	   if (document.body.innerHTML){
    			   document.getElementById(target).innerHTML = html;
    	   }
    	   else if (document.getElementById){
    			   var element = document.getElementById(target);
    			   var range = document.createRange();
    
    			   range.selectNodeContents(element);
    			   range.deleteContents();
    			   element.appendChild(range.createContextualFragment(html));
    
    	   }
    	},
    
    	execJS : function (node) {
    
    		var st = node.getElementsByTagName('SCRIPT');
    		var strExec;
    
    		var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
    		var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
    		var bMoz = (navigator.appName == 'Netscape');
    
    		for(var i=0;i<st.length; i++) {     
    			if (bSaf) {
    			  strExec = st[i].innerHTML;
    			}
    			else if (bOpera) {
    			  strExec = st[i].text;
    			}
    			else if (bMoz) {
    			  strExec = st[i].textContent;
    			}
    			else {
    			  strExec = st[i].text;
    			}
    			try {
    			  eval(strExec);
    			} catch(e) {
    			  alert(e);
    			}
    		}
    
    	},	
    
    	ahahDone : function (url, target, delay, method, parameters) {		
    		if (req.readyState == 4) { 
    			element = document.getElementById(target);
    			if (req.status == 200) {
    
    				//this.creaDIV(target, req.responseText);
    				output = req.responseText;
    				document.getElementById(target).innerHTML = output;
    				var j = document.createElement("div");
    				j.innerHTML = "_" + output + "_";
    				this.execJS(j);
    
    			} 		
    			else {
    				this.creaDIV(target, "ahah error:\n"+req.statusText);
    			}
    		}
    	},
    
    	/*
    
    	@@ parameters : 
    	fileName	= name of your cgi or other
    	method		= GET or POST, default is GET
    	formName	= name of your form
    	dynamicTarget	= name of your dynamic Target DIV or other
    
    	@@ usage : 
    	<form id="formName" action="javascript:completeAHAH.likeSubmit('fileName', 'method', 'formName', 'dynamicTarget');">
    
    	*/
    
    	likeSubmit : function ( file, method, formName, target ) {
    
    		var the_form = document.getElementById(formName);
    		var num = the_form.elements.length;
    		var url = "";
    		var radio_buttons = new Array();
    		var nome_buttons = new Array();
    		var check_buttons = new Array();
    		var nome_buttons = new Array();
    
    
    		// submit radio values
    		var j = 0;
    		var a = 0;
    		for(var i=0; i<the_form.length; i++){
    			var temp = the_form.elements[i].type;
    			if ( (temp == "radio") && ( the_form.elements[i].checked) ) { 
    				nome_buttons[a] = the_form.elements[i].name;
    				radio_buttons[j] = the_form.elements[i].value; 
    				j++; 
    				a++;
    			}
    		}
    		for(var k = 0; k < radio_buttons.length; k++) {
    			url += nome_buttons[k] + "=" + radio_buttons[k] + "&";
    		}
    
    		// submit checkbox values
    		var j = 0;
    		var a = 0;
    		for(var i=0; i<the_form.length; i++){
    			var temp = the_form.elements[i].type;
    			if ( (temp == "checkbox") && ( the_form.elements[i].checked) ) { 
    				nome_buttons[a] = the_form.elements[i].name;
    				check_buttons[j] = the_form.elements[i].value; 
    				j++; 
    				a++;
    			}
    		}
    		for(var k = 0; k < check_buttons.length; k++) {
    			url += nome_buttons[k] + "=" + check_buttons[k] + "&";
    		}
    
    		// submit all kind of input		
    		for (var i = 0; i < num; i++){	
    			var chiave = the_form.elements[i].name;
    			var valore = the_form.elements[i].value;
    			var tipo = the_form.elements[i].type;
    
    			if ( (tipo == "submit") || (tipo == "radio") || (tipo == "checkbox") ){}
    			else {
    				url += chiave + "=" + valore + "&";
    			}
    		}
    
    		var parameters = url;
    		url = file + "?" + url;
    
    		if (method == undefined) { 
    			method = "GET"; 	
    		}
    		if (method == "GET") { 
    			this.ahah(url, target, '', method, ''); 
    		}
    		else { 
    			this.ahah(file, target, '', method, parameters); 
    		}
    	}
    
    };
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Come gia' ribadito tante altre volte, non e' possibile inviare files con l'oggetto XMLHTTP... come dice il suo nome il suo scopo e' trasmettere dati testuali, preferibilmente in formato XML.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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 © 2026 vBulletin Solutions, Inc. All rights reserved.