Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149

    [AS 2]problema sendAndLoad e PHP

    ciao,
    sto cercando di far funzionare questo piccolissimo script ma ho qualche problema di ritorno(e forse anche di invio ma non so come testarlo)

    il codice flash è questo:
    codice:
    // preparo l' oggetto invia contenente le variabili da inviare al php
    var invia  = new LoadVars();
    // ... e lo popolo con quello che voglio inviare
    invia.valore = "ciao";
    // mi creo anche la variabile di ritorno eventuale di codice
    var ricevuto  = new LoadVars();
    ricevuto.onLoad = function(success) {
    	if(success) {
    		trace("OK");
    		trace(ricevuto);
    		txtTesto.text = ricevuto.ret;
    	}
    	else {
    		trace("Errore");
    	}
    }
    // ora invio e ricevo le variabili
    invia.sendAndLoad("script.php",ricevuto);
    e il codice PHP è questo:
    Codice PHP:
    <?php
        
    if ($_POST["valore"] == "ciao") {
            echo 
    "ret=ok";
        } 
        else {
            echo 
    "ret=no";
        }
    ?>
    solo che il trace(ricevuto); mi scrive questo:
    codice:
    %3C%3Fphp%0D%0A%09if%20%28%24%5FPOST%5B%22valore%22%5D%20=%3D%20%22ciao%22%29%20%7B%0D%0A%09%09echo%20nl2br%28%22ret%3Dok%22%29%3B%0D%0A%09%7D%20%0D%0A%09else%20%7B%0D%0A%09%09echo%20nl2br%28%22ret%3Dno%22%29%3B%0D%0A%09%7D%0D%0A%3F%3E%20&onLoad=%5Btype%20Function%5D
    mentre il ricevuto.ret mi da undefined
    perchè succede questo?? come mai non riesco a recuperare solo il valore di ret??

    grazie ciao
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  2. #2
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149
    ho anche provato ad usare solo la funzione load()

    il filmato flash nel primo frame contiene questo codice
    codice:
    var articoli  = new LoadVars();
    articoli.onLoad = function(success) {
    	if(success) {
    		trace("OK");
    		trace(articoli);
    	}
    	else {
    		trace("Errore");
    	}
    }
    // ricevo il contenuto dello script
    articoli.load("script.php",articoli);
    aprendo la pagina script.php nel browser viene visualizzato a video questo
    codice:
    art_3=articolo 3&art_4=articolo 4&
    che è quello che mi serve.. ma quando eseguo il filmato flash quello che viene tirato fuori è questo
    codice:
    %22%3B%0D%0A%09%09%7D%0D%0A%09%7D%0D%0A%09else%20%7B%0D%0A%09%09%24out%20=%20%22ret%3DErrore%20connessione%20al%20DB%22%3B%0D%0A%09%7D%0D%0A%09%24cDb%2D%3Edisconnetti%28%24db%29%3B%0D%0A%09%0D%0A%09echo%20%24out%3B%0D%0A%3F%3E%20&%3C%3Fphp%0D%0A%09include%20%22%2E%2E%2Fincludes%2FdbConfig%2Ephp%22%3B%0D%0A%09include%20%22%2E%2E%2Fincludes%2FclsDB%2Ephp%22%3B%0D%0A%09%0D%0A%09%24cDb%20=%20new%20DataBase%28%24dbServer%2C%24dbName%2C%24dbUser%2C%24dbPassword%29%3B%0D%0A%09%09%0D%0A%09%24out%20%3D%20%22%22%3B%0D%0A%09%09%0D%0A%09%2F%2Fquery%20sul%20DB%0D%0A%09%24db%20%3D%20%24cDb%2D%3Econnetti%28%29%3B%0D%0A%09if%28%24db%29%20%7B%0D%0A%09%09%24query%20%3D%20%24cDb%2D%3EeseguiQuery%28%24db%2C%22SELECT%20id%2Ctitolo%0D%0A%09%09%09%09%09%09%09%09%09%09%20%20FROM%20art%5Farticoli%0D%0A%09%09%09%09%09%09%09%09%09%09%09WHERE%20sectionId%20%3D%20%28SELECT%20id%0D%0A%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%20%20%20%20%20FROM%20art%5Fsezioni%0D%0A%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%20%20%20WHERE%20nome%20%3D%20%27Flash%20News%27%29%22%29%3B%0D%0A%0D%0A%09while%28%24row%20%3D%20mysql%5Ffetch%5Farray%28%24query%29%29%20%7B%0D%0A%09%09%09%24out%20%2E%3D%20%22art%5F%22%20%2E%20%24row%5B%27id%27%5D%20%2E%20%22%3D%22%20%2E%20%24row%5B%27titolo%27%5D%20%2E%20%22&onLoad=%5Btype%20Function%5D
    ed utilizzando questo blocco di codice ottengo esattamente la pagina script.php "letta" dal fondo
    codice:
    for(var prop in this){
    	trace(this[prop].split("\r\n").join(""));
    }
    mi viene il dubbio che debba impostare qualcosa in modo da poter leggere una pagina php
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Penso che tu stia facendo il test direttamente da flash, per questo il codice php non viene parsato e di conseguenza ottieni in output il codice così come è scritto invece di ottenere quello corretto.

  4. #4
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149
    quindi dici che eseguendo il swf il risultato cambia?? provo subito...
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da elilo
    quindi dici che eseguendo il swf il risultato cambia?? provo subito...
    Non l'swf, ma una pagina html che lo contenga e che venga eseguita sul server (locale o remoto che sia).
    Oppure metti un indirizzo assoluto da richiamare nell'swf (es. http://127.0.0.1/ ecc...)

  6. #6
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149
    sisi ci ho pensato dopo alla cavolata che avevo scritto e ho provato a metterlo in un html e funziona!!! grandissimo grazie!!!
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  7. #7
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149
    ora però ho un'altro problema. sto cercando di mettere i valori ricevuti in un vettore ma non riesco...cioè il vettore resta vuoto.

    il codice che uso è
    codice:
    var articoli  = new LoadVars();
    var vArt = Array();
    var maxLength = 0;
    articoli.onLoad = function(success) {
    	if(success) {
    		//OK
    		maxLength = int(articoli.cont);
    		txtNotizia.text = maxLength + "  -  ";
    		
    		vArt = new Array(maxLength);
    		var cont = maxLength-1;
    		for(var prop in articoli) {
    			if(prop != "cont") {
    				vArt[cont] = (articoli[prop]);
    				cont++;
    			}
    		}
    	}
    	else {
    		//Errore
    		txtNotizia.text = articoli.ret;
    	}
    }
    // ricevo il contenuto dello script
    articoli.load("script.php");
    maxLength viene valorizzata correttamente ma non so bene come "usare" il for che ho copiato da una guida...se stampo articoli[prop] il valore c'è ma se cerco di inserirlo nel vettore e poi stampo il contenuto del vettore è vuoto
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Credo che il "for" che hai copiato si basi su un determinato tipo di output atteso da php.
    Il tuo output php cosa produce esattamente?

  9. #9
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149
    produce questo

    &cont=2&
    &art_3=articolo 3&
    &art_4=articolo 4&

    la prima riga è il conteggio totale di articoli mentre ogni altra riga è il titolo di un articolo.
    il for che ho copiato mi da tanto l'impressione di una specie di foreach....
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da elilo
    produce questo

    &cont=2&
    &art_3=articolo 3&
    &art_4=articolo 4&

    la prima riga è il conteggio totale di articoli mentre ogni altra riga è il titolo di un articolo.
    il for che ho copiato mi da tanto l'impressione di una specie di foreach....
    Diciamo di sì, una sorta di foreach, ma personalmente non mi piace molto e lo uso per poche cose. Il problema con il tuo output è che devi cominciare con un indice dell'articolo sballato, quindi devi iniziare da 3 invece che da 0. Apparte questo puoi usare un while che verifichi se esiste un "art_"+indice e se non esiste più esce dal while.

    Codice PHP:
    var articoli  = new LoadVars();
    var 
    vArt = [];
    articoli.onLoad = function(success) {
        if(
    success) {
            
    txtNotizia.text maxLength "  -  ";
            var 
    indice 3;
            while (
    this["art_"+indice] != undefined) {
                
    vArt.push(this["art_"+indice]);
                
    indice++;
            }
        } else {
            
    txtNotizia.text "Non caricato!";
        }
    }
    // ricevo il contenuto dello script
    articoli.load("script.php"); 

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.