Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Problemi con Ajax

  1. #1

    Problemi con Ajax

    nella pagina index.php vorrei caricare la pagina "indice.php?lettera"

    fin qui mi funziona tutto il codice che ho inserito nella index e'

    codice:
    function createObject() {
    var tipo_richiesta;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
    tipo_richiesta = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    tipo_richiesta = new XMLHttpRequest();
    }
    return tipo_richiesta;
    }
    
    var http = createObject();
    
    function handleResponse() {
    if(http.readyState == 4){
    var response = http.responseText;
    document.getElementById('main').innerHTML = response;
    }
    }
    function carica(valore) {
    http.open('GET', valore);
    http.onreadystatechange = handleResponse;
    http.send(null);
    }
    avendo un collegament del tipo:
    a

    la pagina me la carica e fin qui tutto bene

    nella pagina indice.php ho inserito un semplice alert script
    <script language=\"javascript\">window.alert('on');</script>

    ma quando vado a caricare la pagina non mi esce l'alert ma perche'???
    e' stranissimo


  2. #2
    Ciao Lupin,
    anch'io mi sono scontrato col tuo problema, ma è più comune di quanto tu possa credere, e la risposta è alquanto semplice:

    Quando richiami una pagina con XMLHttp e simili, la pagina, viene letta ed elaborata, ma non vengono eseguiti Javascript e simili, in quanto Lato-Client, che nel caso specifico non esistono!

    Se vuoi che ti si apra una alert, devi far si che la pagina indici.php ritorni indietro tramite un semplice output (in ASP sarebbe response.write in php forse echo non so') un valore e te leggendo la risposta dalla pagina Index.php decidi cosa fare di conseguenza...

    La pagina Indice.php può eseguire istruzioni php tipo interazione con database e variabili di sessione o quant'altro, ma non può eseguirte codice lato client, che dev'essere eseguito sulla pagina chiamante (index.php) in relazione alla risposta ricevuta dalla pagina chiamata.

  3. #3

    gia fatto

    ho gia' provato come dici tu ma non funziona lo stesso...

    codice:
    <?
    
    
    ...
    
    echo "<script language=\"javascript\">window.alert('on');</script>";
    
    ...
    
    
    
    ?>

  4. #4
    Ciao Lupin III,
    non ho ben capito cosa ti è successo in particolare, ma comunque ti invio il Link ad alcune funzioni che ho fatto io per Leggere Pagine, Inviare Dati di form sia in GET che in POST, purtroppo sono in ASP, ma la struttura fondamentale, e il File .js con le funzioni Javascript le puoi riusare anche in PHP.

    Solo una cosa ti chiedo, se le usi lascia intatto il Copyright nel file JS.

    Spero di esserti stato utile...


    Buon Lavoro...

    XML Function by Superpeace.com
    http://www.superpeace.com/download/X...rpeace_com.zip


  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    \\Lup3n quello che vuoi fare non è possibile e te lo ha già spiegato superpeace

    il codice javascript per funzionare deve essere letto durante il caricamento della pagina, se tu con altre tecniche aggiungi codice javascript dopo che la pagina è stata caricata non verrà mai eseguito.

  6. #6

    ho risolto con ahah


  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    eh... magari potresti far vedere anche a noi come?

  8. #8

    certo...

    Dal recente post su ahah

    helloworld.php
    codice:
    <?
    echo "<script language=\"javascript\" scr=\"ahah.js\"></script>";
    echo "<script language=\"javascript\"><a href=\"javascript:prova();\">prova</a>";
    ?>





    ahah.js
    codice:
    function submit(FILE, METHOD){
    	
    	var num = document.forms[0].elements.length;
    	var url = "";
    
    	for (var i = 0; i < num; i++){
    		
    		var chiave = document.forms[0].elements[i].name;
    		var valore = document.forms[0].elements[i].value;
    
    		if (chiave == "submit"){}
    		else {
    			url += chiave + "=" + valore + "&";
    		}
    	}
    	var parameters = url;
    	url = FILE + "?" + url;
    	if (METHOD == undefined) { METHOD = "GET"; 	}
    	if (METHOD == "GET") { ahah(url, 'target', '', METHOD); }
    	else { ahah(FILE, 'target', '', METHOD, parameters); }
    
    }
    
    function ahah(url, target, delay, method, parameters) {
    
      if (method == undefined) { 
    	  document.getElementById(target).innerHTML = 'caricamento dati in corso...';
    	  if (window.XMLHttpRequest) {
    		req = new XMLHttpRequest();
    	  } else if (window.ActiveXObject) {
    		req = new ActiveXObject("Microsoft.XMLHTTP");
    	  }
    	  if (req) {
    		req.onreadystatechange = function() {
    			ahahDone(url, target, delay, method, parameters);
    		};
    		req.open("GET", url, true);
    		req.send("");
    	  }  
      }
      if ( (method == "GET") || (method == "get") )
      {
    	  document.getElementById(target).innerHTML = 'caricamento dati in corso...';
    	  if (window.XMLHttpRequest) {
    		req = new XMLHttpRequest();
    	  } else if (window.ActiveXObject) {
    		req = new ActiveXObject("Microsoft.XMLHTTP");
    	  }
    	  if (req) {
    		req.onreadystatechange = function() {
    			ahahDone(url, target, delay, method, parameters);
    		};
    		req.open(method, url, true);
    		req.send("");
    	  }
      }
    
      if ( (method == "POST") || (method == "post") )
      {
    	  document.getElementById(target).innerHTML = 'caricamento dati in corso...';
    	  if (window.XMLHttpRequest) {
    		req = new XMLHttpRequest();
    	  } else if (window.ActiveXObject) {
    		req = new ActiveXObject("Microsoft.XMLHTTP");
    	  }
    	  if (req) {
    		req.onreadystatechange = function() {
    			ahahDone(url, target, delay, method, parameters);
    		};
    		req.open(method, url, true);
    		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    		req.send(parameters);
    	  }
      }
    }  
    
    function ahahDone(url, target, delay, method, parameters) {
      if (req.readyState == 4) { 
        if (req.status == 200) { 
          document.getElementById(target).innerHTML = req.responseText;
        } else {
          document.getElementById(target).innerHTML="ahah error:\n"+req.statusText;
        }
      }
    }
    function prova()
    {
    window.alert('ciao');
    }

    helloworld.html
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Say hello!</title>
    <script language="javascript1.3" src="ahah.js" ></script>
    </head>
    <body>
    Say hello!
    <div id="target"></div>
    </body>
    </html>

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    così è tutto normale...

    tu hai richiamato una pagina con un link
    in quel link c'è il richiamo ad una funzione javascript
    la funzione javascript richiamata è già presente nel file js
    (non ha senso mettere nel file helloworld.php il richiamo al file js)

    ribadisco che non è possibile aggiungere codice js dopo il caricamento della pagina. (cioè... è possibile ma non serve a niente, variabili e funzioni non vengono viste dal motore javascript)

    puoi aggiungere solo comandi javascript da essere eseguiti da eventi post caricamento (tipo l'azione di un link) e che richiamano istruzioni standard o funzioni già esistenti nella pagina


  10. #10

    secondo te

    uhm... questo è un fattore molto limitativo eh?

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.