Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380

    ajax + jquery ed il messaggio nei <div>

    ciao, il mio scopo è validare un form:
    ottengo i vari messaggi di validazione (mediante funzioni php) ma si concatenano.
    Ad esempio: "campo nome non valido" poi modifico il campo, ri-submit ed il secondo messaggio si concatena al primo, e via dicendo con i restanti campi.

    Qui di seguito lo script (importo anche la libreria jquery)

    codice:
    $(function() {
    $(".button").click(function() {
    var element = $(this);
       var nome = $("#nome").val();
       var email = $("#email").val();
        var dataString = 'nome='+nome+'&email='+email ;
    	
    	$("#flash").show();
    	$("#flash").fadeIn(400).html('<span class="loading">Attendi...</span>');
    	
    		$.ajax({
    		type: "POST",
      url: "demo_insert.php",
       data: dataString,
      cache: false,
      success: function(html){  
      	
        $("#display").after(html);
    document.getElementById('nome').focus()
     $("#flash").hide();
     	
      }
      
    });
        return false;
    	});
    
    
    });
    </script>
    GRAZIE!
    If you think your users are idiots, only idiots will use it. DropBox

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    ..allora..un piccolo passo l'ho fatto, ho capito come evitare la concatenazione dei messaggi d'errore, sostituire la riga
    codice:
    $("#display").after(html);
    con
    codice:
    $("#display").html(html);
    Ora però rimane insoluto un altro problema, praticamente vorrei ottenere l'effetto di "concatenazione" con gli esiti positivi, cioè visualizzare i campi nome ed email ogni qualvolta questi siano giusti!
    Ma cosa succede?
    Supponiamo di visualizzare una coppia "nome email" e di volerne inserire un'altra.
    Facendo la validazione sparisce la precedente coppia dando spazio all'eventuale messaggio di errore!!!
    Avevo pensato di risolvere così ma invano
    codice:
    var StringadiEsito = html; 	  
       var esito = StringadiEsito.indexOf("errore"); 
    if (esito != 1) 
    	$("#display").html(html); //non devi concatenare i messaggi
    else   
      	$("#display").after(html); //concatena i messaggi: nome, email
    spero in qualche vostro consiglio
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se il div (o oggetto) denominato display viene utilizzato sia per mostrare i campi che per restituire l'errore è normale, la soluzione più rapida (sopratutto quando non si ha ottima conoscienza di jquery) è separare, in display metti i campi e in error metti l'errore (qualora ci sia).
    Esempio <div id="display">metto i mie campi</div><div id="error">qui ci andrà il messaggio d'errore inizialmente sarà pre impostato non visibile/nascosto</div>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    grazie per la risposta ed il consiglio solo che, come dire, non saprei come distinguere i risultati "errore" ed "esito positivo" in quanto entrambi provengono dall'echo di una classe di validazione.
    Io ho optato per questa soluzione, forse grezza, ma efficace ai miei scopi
    codice:
    var StringadiEsito = html; 	  
       var esito = StringadiEsito.indexOf("errore"); 
    if (esito != 1) 
    	$("#display").html(html); //non devi concatenare i messaggi
    else   {$("#display").empty();
      	$("#display").after(html); //concatena i messaggi: nome, email
           }
    Aggiungendo la riga $("#display").empty(); risolvo il problema postato del messaggio precedente: sovrapposizione non voluta di alcuni messaggi.

    In questo modo pare funzioni ma se posso migliorare.....

    Risolto in qualche modo questo passaggio, vorrei migliorare la visualizzazione dei messaggi da esito positivo. Questi mi appaiono come in una pila, in questo modo:

    nome2 email2
    nome1 email1

    io vorrei invece:
    nome1 email1
    nome2 email2

    Grazie !
    If you think your users are idiots, only idiots will use it. DropBox

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma..... Tu vuoi che ad ogni riga (composta da email e nome) ci sia un "spazio" che restituisca se i campi sono validi o errati?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    sì, ho una tabella da popolare, sotto la quale il mio form....quindi compilo il form, ottengo il messaggio di validazione oppure se ok "nome email"
    continuo con il secondo inserimento e vorrei che questo si accodasse al precedente, che comparisse sotto anzicchè sopra
    Non ho il demo online
    grazie ancora
    If you think your users are idiots, only idiots will use it. DropBox

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Forse ho capito cosa intendi, ma non saprei spiegarlo (e non è certo che funzioni), forse vedendo una demo online.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.