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

Discussione: ajax e forms

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    21

    ajax e forms

    Ciao a tutti
    Ho intenzione di realizzare un form in Ajax, in modo da non dover ricaricare la pagina dopo aver premuto il pulsante...
    Ho letto alcuni articoli e penso di aver capito in parte il funzionamento della cosa..
    Tutti gli articoli spiegano infatti come utilizzare ajax inserendo i valori da passare in javascript, io vorrei che fosse automatico.
    Ho visto che un articolo fa ciò che intendo, ovvero alla pressione del pulsante cattura dal form i valori senza specificarli tutti, ma utilizza xml parsando tutti i tipi di campo...
    Conoscete un altro modo più semplice ( che eviti possibilmente xml ) o potreste darmi delle dritte su come fare ?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    questa funzione dovrebbe comporre la stringa dei parametri da inviare con ajax
    codice:
    //-----------------------------------------------------------------
    //crea la stringa dei parametri da utilizzare con ajax
    //-----------------------------------------------------------------
    function crea_parametri(form)
    {
        if(typeof(form) == "undefined")
            return;
        else if(typeof(form) == "string")
        {
            var f = document.getElementById(form);
            if(!f) return;
        }
        else if(typeof(form) == "object")
            var f = form;
        
        
        var elements = f.elements;
        if(!elements) return;
        var n = elements.length;
        var s = [];
        for(var i = 0; i < n; i++)
        {
            var element = elements[i];
            var name = element.name;
            if(name != "")
            {
                var type = element.type;
                var value = encodeURIComponent(element.value);
                if(type == "text" || type == "file" || type == "password" )
                {
                    s.push(name + "=" + value);
                }
                
                else if(type == "hidden")
                {
                    //non considero gli elementi riservati quali:
                    //__EVENTTARGET, __EVENTARGUMENT, __VIEWSTATE, __EVENTVALIDATION
                    if(name.indexOf("__", 0) == -1) s.push(name + "=" + value);
                }
                
                else if(type == "checkbox" || type == "radio" )
                {
                    if(element.checked)
                    {
                        s.push(name + "=" + value);
                    }            
                }
                else if(type == "textarea")
                {
                    s.push(name + "=" + value);
                }
                
                else if(type == "select-one" || type == "select-multiple")
                {
                    var c = options_value_selezionati_join(element) + "";
                    if(c != "") s.push(name + "=" + c);
                }
                
            }
            
        }
        s = s.join("&");
        return s;
    
    
        //------------------------------------------------------------
        //restituisce gli elementi value selezionati da una lista
        //separati da virgola
        //------------------------------------------------------------
        function options_value_selezionati_join(lista)
        {
    	    var s = "";
    	    for(var i = 0; i < lista.options.length; i++)
    	    {
    		    if(lista.options[i].selected) s += "," + lista.options[i].value;
    	    }
    	    return s.substr(1);
        }
    
    
    
    
    }

    e si usa come in questo frammento:
    codice:
    function regioni_onchange(t)
    {
        var parametri = crea_parametri(document.forms[0]);
        ajax("Regioni_province_comuni.aspx?ajax_comando=1", onload, parametri);
    **********
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    21
    Oddio, nel frattempo ho codato una funzione propria, pensavo fosse più complicato...
    Grazie lo stesso !

    Un' ultima cosa...
    Ho un dubbio su Ajax: riesco a fare la richiesta con _POST all' httpserver con i parametri catturati dal form, ma come posso catturare il tutto da php ?
    So catturare variabili tramite _POST da php, ma non so come comportarmi con 'responseText'...
    Non posso inserirlo nella pagina in quanto mostrerebbe due volte la stessa pagina ma mi serve per catturare le variabili... Spero di essermi spiegato..

    Grazie 1000

  4. #4

    .........

    So catturare variabili tramite _POST da php, ma non so come comportarmi con 'responseText'...
    Allo script php le variabili arrivano come sempre
    in $_POST quello che devi gestire se decidi di farlo
    è la risposta a queste variabili.

    Mi spiego metti che inserisci i dati nel DB (validazione a parte)
    se va tutto bene la funzione ti restituirà 1 se qc va storto
    0 e via js puoi gestire la responseText.
    Ti consiglio di usare un semplice file xml utilizzando
    responseXML.
    Per darti un'idea dai un occhio qui


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    21
    Ciao io vorrei solamente "catturare" i dati con _POST ma se lo inserisco normalmente nel codice php non vede il valore...
    Non mi serve una funzione handler in onreadystatechange, vero ?
    Perchè ne ho dichiarata una vuota ma per quanto ho capito serve solo per capire quando avviene l' azione...

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da jwein
    Oddio, nel frattempo ho codato una funzione propria...
    :quote:
    Passato prossimo del verbo codare

    Dalle nostre parti aveva ben altro significato :master:
    Pietro

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    comunque, non avendo mai codato (gerundio passato) in php, non so dare la risposta
    Pietro

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    21
    E' l' abitudine
    Se qualcuno può rispondermi risponda pls

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    21
    Ciao grazie dovrei essere riuscito
    Ma è necessario ricaricare la pagina con document.getElementById('Bottom').innerHTML = HttpRequest.responseText per ottenere le variabili con _GET o _POST, vero ?

  10. #10

    ...........

    var pippo = HttpRequest.responseText
    In pippo c'è l'output della richiesta Ajax bisogna vedere
    cosa ti ritorna la pagina PHP.
    Poi puoi usare DOM o document.getElementById('content').innerHTML = pippo;
    nella pagina ovviamente ci sarà un div con id content.
    Bisogna vedere cosa vuoi fare dopo.
    Usa un input di tipo button con evento
    onclik per richiamare Ajax.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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