Pagina 1 di 5 123 ... UltimoUltimo
Visualizzazione risultati 1 fino 30 di 127
Like Tree3Likes

Discussione: domanda stupida o intelligente ????

  1. #1
    Guest

    Predefinito domanda stupida o intelligente ????

    Salve a tutti,

    In molti esempi che trattano la sincronizzazione dati e quidi la sua verifica in tempo reale, ho notato che metteono sempre delle finestrelle di alert. Mi chiedevo ma a posto di alert è possibile mettere a fianco del campo ad esempio se è vuoto o se è compilato bene una semplicissima scritta ?????

    Questo è uno di quegli esempi che ho pescato qui all'interno del forum:


    Codice PHP:

    <script type="text/javascript">
    function
    formValid() {
    if (
    document.forms["nameForm"].textname.value.length == 0) {
    alert("Il campo NOME non e` stato completato");
    return
    false;
    } else if (
    document.forms["surnameForm"].textname.value.length == 0) {
    alert("Il campo COGNOME non e` stato completato");
    return
    false;
    } else {
    alert("I campi sono tutti completati"); //intendo questo
    return true;
    }
    }
    </script>
    Mi potreste illuminare ???? Grazie.

  2. #2
    Guest

    Predefinito

    Si

    puoi tra gli altri:
    - prevedere una label/span/div da 'riempire' in caso di errore a fianco dell'elemento interessato
    - utilizzare un elemento 'volante' che si precipiti sulla riga interessata mostrando l'errore
    - scriverlo in un campo fisso


    comunque per la parte 'non compilato' se aggiungi l'attributo 'required' al campo lo fa in auto
    Ultima modifica di FormularioDiDrakensang : 16-08-2014 alle ore 18.35.07

  3. #3
    Guest

    Predefinito

    Ciao FormularioDiDrakensang,

    Grazie per la risposta. Ti volevo chiedere una cosa, invece di mettere i soliti alert che mi stanno altamente antipatici, quando si fa la verifica di un campo ad esempio username se è presente o meno nel db è possibile mettere delle immagini a fianco del campo stesso ??? Se è si mi potresti aiutare ??? Io non ci sono riuscito, ho visto tanti esempi li ho provati ma niente non so da dove iniziare....

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da magnare Visualizza messaggio
    Ciao FormularioDiDrakensang,

    Grazie per la risposta. Ti volevo chiedere una cosa, invece di mettere i soliti alert che mi stanno altamente antipatici, quando si fa la verifica di un campo ad esempio username se è presente o meno nel db è possibile mettere delle immagini a fianco del campo stesso ??? Se è si mi potresti aiutare ??? Io non ci sono riuscito, ho visto tanti esempi li ho provati ma niente non so da dove iniziare....

    Ciao,

    Proverò come date suggeritomi. E epnsare che l'avevo risolto a suo tempo ma non mi ritrovo più l'esempio che avevo fatto. Era di una banalità unica. Deficiente che sono...... Se lo dovessi ritrovare posto la soluzione :P Grazie.

  5. #5
    L'avatar di LastWings
    LastWings non è connesso AlterGuru
    Data registrazione
    14-10-2006
    Messaggi
    1,628

    Predefinito

    Citazione Originalmente inviato da magnare Visualizza messaggio
    Ciao FormularioDiDrakensang,

    Grazie per la risposta. Ti volevo chiedere una cosa, invece di mettere i soliti alert che mi stanno altamente antipatici, quando si fa la verifica di un campo ad esempio username se è presente o meno nel db è possibile mettere delle immagini a fianco del campo stesso ??? Se è si mi potresti aiutare ??? Io non ci sono riuscito, ho visto tanti esempi li ho provati ma niente non so da dove iniziare....

    Potresti adattare questo esempio per i controlli live, sul db.
    http://www.freezecoders.com/2012/10/...-php-ajax.html
    Ecchi Paradise - Frammenti Perduti - Semplici Parole - Recensioni ed Opinioni

    Non contattatemi privatamente per ricevere supporto, per queste cose esiste il forum pubblico
    .

  6. #6
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Inserisci l'immagine o le immagini che desideri appaia/no quando viene effettuata la verifica , quindi al caricamento del documento nascondi l'immagine/i e allo script di controllo (quando adesso esegui alert) mostri l'immagine/i .
    In questo piccolo Esempio mostro una immagine dopo che l'utente scrive correttamente nell'area input.
    Codice HTML:
    <!DOCTYPE html>
    <html>
    <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
     $("#controllo").hide();
    });
    
    function controlla(){
     var valore = $("input").val();
     if (valore==="OK"){
      $("#controllo").show();
     }
    }
    </script>
    </head>
    <body>
    Scrivi OK per far apparire l'immagine
    <input id="Input" type="text" />
    <div id="controllo"><img src="3.png" /></div>
    <button onclick="controlla()">Ok</button>
    
    </body>
    </html>
    io (per mia comodità) ho usato jQuery ma puoi anche usare solo JS

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da NLSweb Visualizza messaggio
    Inserisci l'immagine o le immagini che desideri appaia/no quando viene effettuata la verifica , quindi al caricamento del documento nascondi l'immagine/i e allo script di controllo (quando adesso esegui alert) mostri l'immagine/i .
    In questo piccolo Esempio mostro una immagine dopo che l'utente scrive correttamente nell'area input.
    Codice HTML:
    <!DOCTYPE html>
    <html>
    <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
     $("#controllo").hide();
    });
    
    function controlla(){
     var valore = $("input").val();
     if (valore==="OK"){
      $("#controllo").show();
     }
    }
    </script>
    </head>
    <body>
    Scrivi OK per far apparire l'immagine
    <input id="Input" type="text" />
    <div id="controllo"><img src="3.png" /></div>
    <button onclick="controlla()">Ok</button>
    
    </body>
    </html>
    io (per mia comodità) ho usato jQuery ma puoi anche usare solo JS
    Una curiosità lo stesso esempio si può mettere quando ha finito di scrivere e passa con il tab ossia con la funzione onkeyup ???

  8. #8
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Puoi inserire il onkeyup="myFunction()" nel INPUT Tag , in questo modo si attiva quando premi il tasto TAB

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da NLSweb Visualizza messaggio
    Puoi inserire il onkeyup="myFunction()" nel INPUT Tag , in questo modo si attiva quando premi il tasto TAB

    Ok domani ci provo. Un'alta cosa, visto che avrò diversi campi non solo nome, cognome username ecc. ecc come li posso raggruppare in un unica soluzione ???? Ovviamente debbo togliere questa stringa:
    <button onclick="controlla()">Ok</button>
    Ultima modifica di magnare : 25-08-2014 alle ore 21.59.39

  10. #10
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Certamente ...

    puoi ad esempio passare come argomento funzione ID del INPUT e definire in modo automatico l'elemento

    esempio:
    Codice:
    <input id="Input1" type="text" onkeyup="myFunction(1)"/>
    <input id="Input2" type="text" onkeyup="myFunction(2)"/>
    <input id="Input3" type="text" onkeyup="myFunction(3)"/>
    ...
    <div id="controllo1"><img src="immagine.png" /></div>
    <div id="controllo2"><img src="immagine.png" /></div>
    <div id="controllo3"><img src="immagine.png" /></div>
    
    .........
    
    $(document).ready(function(){
     for(i=1;i<NumElementi){
      var elemento = "#controllo"+i;
      $(elemento).hide();
     }
    
    .........
    
    function controlla(ID){
     var elementoDIV = "#controllo"+ID;
     var elementoINPUT = "Input"+ID;
     var valore = $(elementoINPUT).val();
     if (valore!=""){
      $(elementoDIV).show();
     }
    }
    Ultima modifica di NLSweb : 25-08-2014 alle ore 22.41.24
    magnare likes this.

  11. #11
    Guest

    Predefinito

    Ciao NLSweb,

    Domani provo e ti dico. Grazie sei un angelo :P

  12. #12
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    In riferimento al post
    Qua c'è quello che vorrei fare ed ottenere il più semplice possibile con la chiamata ajaxe il controllo asincrono dei dati mentre s'immentono. Come fa altervista quando ti registri per un nuovo sito. Grazie.
    Quindi vuoi che la funzione di controllo nei campi input confronti i dati immessi dall'utente con quelli presenti nel tuo DB ....

    devo capire esattamente cosa vuoi fare , quali campi richiedi , ecc.. ....per aiutarti meglio..

    per quanto riguarda AJAX è abbastanza semplice ed ho anche scritto una piccola guida in "How-To"

  13. #13
    Guest

    Predefinito

    Ciao NLSweb,

    Si esattamente così. Io purtroppo da solo non ci sono risciuto. Dopo vado a vedere la guida che hai fatto. I campi sono i seguenti:

    Cognome --> da mettere una semplice "V"
    Nome --> da mettere una semplice "V"
    username --> da controllare nel db
    email e ripemail --> da controllare nel db e se coincidono
    password e rippassw --> da controllare nel db e se coincidono

    Questi sono i dati essenziali, poi ci sono gli altri dati che sono

    data di nascita, località, città, professione ecc ecc che non vanno controllati nel db ma solo registrati nel db e metterci una "V" a fianco di ogni campo compilato. Ah ovviamente se manca uno dei campi dovrebbe essere segnalata con un avviso a fianco del campo mancante (non le finestre di alert le odio) ultimo una checkbox che flaggata parte la registrazione dei dati e l'accettazione del regolamento. Questo è una farsa che ho buttato giù ma è incompleta.

    iscrizione.php

    Codice PHP:


    <html>
    <head>
    <meta charset="UTF-8">
    <title>Iscrizione</title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript">
    function inviaForm()
    {
    var nome=$("#name").val();
    var cognome=$("#cognome").val();
    var username=$("#username").val();

    $.ajax({
    type:'POST',
    url:'checkdati.php',
    data:'nome='+nome+'&cognome='+cognome+'&username='+username,
    success: function(response){
    $("#output").html(response);
    }
    });
    }
    </script>
    <style type="text/css">
    #Data{
    position:absolute;
    top:0px;
    left:10px;
    left:20px;

    }
    #Titolo{
    position:absolute;
    top:0px;
    left:395px;
    width: 350px;
    font-size:100%;
    }
    hr {
    position:absolute;
    top: 42px;
    width: 98%;
    color: #0000ff;
    }
    div {

    position:absolute;
    top: 65px;
    }
    </style>
    </head>
    <body>
    <div id="div">

    <form action="checkdate.php" method="post" id="contatti">

    <label for="cognome">Cognome: <input type ="text" id="cognome" name="cognome" maxlenght ="15" ></label>
    <p>
    <label for="nome">Nome: <input type ="text" id="nome" name="nome" maxlenght ="15"> </label>
    </p>
    <p>
    <label for="nome">Username: <input type ="text" id="username" name="username" maxlenght ="15"> </label>
    </p>
    </form>
    <div id="output" style="color: purple"></div>
    </div>
    </body>
    </html>
    </style>
    </head>
    <body>
    <?php

    include_once("connetti.php");

    echo
    '<div id="Data">';

    include_once(
    "data.php");

    echo
    '<div id="Titolo"><h2>Prova inserimento campi</h2>';

    echo
    "</div> </div> </div> ";

    echo
    ' <hr> <div id = "hr">';

    echo
    "</hr> </div>";

    ?>
    </body>
    </html>

    Questo è quello ch eho fatto fino ad ora. Grazie.

  14. #14
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    avendo intezione di usare il TAB per richiamare la funzione di controllo
    ogni controllo sul DB non può contare su tutti id ati inseriti e ne sul loro ordinamento di inserimento
    (esempio posso scrivere prima la password e poi il nome ; posso non usare il TAB per spostarmi tra i campi input)

    Quindi bisogna creare un funzione che controlli quando il campo non è più vuoto , in caso sia stato inserito un dato questo verrà passato come argomento alla funzione AJAX che collegandosi in background con DB eseguirà un file PHP (a cui verrà passato il dato immesso dall'utente) che eseguirà una ricerca del dato e restituirà vero o falso ; quindi il valore ritornato alla funzione AJAX verrà restitutito alla funzione JS di controllo che in caso vero mostrerà l'immagini di OK , in caso falso mostrerà l'immagine ERROR e azzererà il campo.

    Puoi scrivere diversi piccoli file PHP per eseguire ogni distinto controllo e selezionarli da AJAX con uno switch , o un unico file php in cui passare come argomento il dato inserito e il campo da cercare quindi usare uno switch per differenziare la ricerca del campo nel DB.

  15. #15
    Guest

    Predefinito

    Ciao NLSweb,

    Ho pensato al tasto TAB perchè in genere è quello che viene più utilizzato quando si compila un form. Ma aldilà di quello che ho pensato io, se non ho capito male dovrei creare una funzione che comprenda il comando onkeyup ??? Giusto ??? Ora vorrei sapere sulla base di quello che ti ho postato e di quello che ho fatto può andare bene oppure deve essere modificato ??? Se deve essere modificato mi puoi aiutare a modificarlo per favore ????

  16. #16
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    funzione che comprenda il comando onkeyup ?
    No io pensavo di più a un ONCHANGE , per catturare l'evento di inserimento del dato
    in cui controllo che il campo non sia vuoto quindi eseguo la funzione di controllo

    può andare bene oppure deve essere modificato ?
    la funzione AJAX va completamente riscritta , mentre la struttura HTML va bene (forse solo qualche piccola modifica)
    e la funzione di controllo (che ti ho postato all'inizio) va ripristinata e integrata

    Se deve essere modificato mi puoi aiutare a modificarlo per favore ?
    Certamente! ..Hai già visto la mia piccola guida su AJAX ?
    Se hai dei dubbi in particolare chiedi pure tranquillamente.
    Se avrai bisogno di esempi dimostrativi , non c'è problema.

    Iniziamo un passo per volta .

    Come prima cosa deve fare delle scelte logistiche su come impostare il lavoro (come di dicevo nel post precedente)

    Quindi avrai bisogno della funzione AJAX che puoi trovare in questa guida

    E dovrai creare il file PHP che ricerca nel DB
    Codice:
    SELECT * FROM tabella WHERE campo='elemento da cercare'"
    Quindi il valore trovato dal file PHP verrà restituito ad AJAX
    Codice:
    xmlhttp.responseText
    poi integreremo con il codice da te già scritto

  17. #17
    Guest

    Predefinito

    Quindi se non ho capito male devo cambiare la chiamata ajax che ho fatto e mettere la tua giusto ?????

  18. #18
    Guest

    Predefinito domanda stupida o intelligente ????

    Tanto per tenerti informato ho eseguito con la modifica alla chiamata ajax, ovviamente devo cambiar eil file interessato con il mio. Ecco quello che ho combinato. Correggimi se sbaglio:

    Codice PHP:


    <script type="text/javascript">
    *
    AJAX = Asynchronous JavaScript and XML */

    function
    loadXMLDoc(id)
    {
    /* questa prima parte della funzione apre la comunicazione con il server in background , senza dover riaggiornare la pagina */

    var xmlhttp;
    if (
    window.XMLHttpRequest)
    {
    // codice per le nuove versioni di browser che hanno XMLHttpRequest integrato IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {
    // codice per le vecchie versioni di browser IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    /* qui catturiamo l'evento di quando il readyState cambia */
    /* 0: richiesta non inizializzata */
    /* 1: connessione con il server attivata */
    /* 2: il server ha ricevuto la richiesta */
    /* 3: il server sta eseguendo la richiesta [query] */
    /* 4: il server ha finito e la risposta e' pronta ! */
    /* mentre lo STATUS e' lo stato della pagina , cioe' : 200: "OK" 404: Page not found */

    xmlhttp.onreadystatechange=function()
    {
    if (
    xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    /* qui si inserisce la risposta dal server (quindi l'informazione che abbiamo chiesto al nostro file php */
    /* di prendere dal DataBase , e la si passa al nostro elemento (in questo caso un div) */
    /* da notare che abbiamo richiesto una stringa come risposta , questo perche' non stiamo usando un file XML */
    /* altrimenti avremmo dovuto usare responseXML */
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
    }

    /* qui apri il file dettaglio.php a cui passi la richiesta id e imposti il parametro asincrono=true */
    /* l'importanza di avere una comunicazione asincrona e' che JS non deve aspettare la risposta del server */
    /* ma puo' continuare ad eseguire il codice ed eventualmente a ritardare la risposta in attesa del server */
    /* in questo modo non si creano "colli di bottiglia" , ovvero rallentamenti dovuti a lunghe attese */
    /* chiaramente se si imposta asincrono=false (quindi sincrono) JS fermera' l'esecuzione del codice fino a */
    /* quando il server non gli avra' fornito la risposta .. */

    xmlhttp.open("GET","checkdati.php?ID="+id,true);
    xmlhttp.send();

    /* da notare che AJAX puo' usare sia ASP che PHP */
    }
    Questa l'ho sostituita con quella precedente che ti ho postato. giusto o sbagliato ????

  19. #19
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Si , esatto.

    ricapitolando , ogni volta che un dato viene immesso (quindi il valore del input cambia onchange) verrà eseguita la funzione che verificherà che il dato immesso sia presente nel DB.

    Corretto fino ad ora.
    solo che id argomento di funzione sarà username , password , ecc.
    la risposta invece di essere scritta con innerHTML in un div , verrà passata ad una variabile che controllerà VERO FALSO cioè se ha trovato o meno il dato nel DB

    ...ora devo andare poi mi mostrerai come stai andando e i dubbi su come procedere...
    Ultima modifica di NLSweb : 26-08-2014 alle ore 18.48.09

  20. #20
    Guest

    Predefinito

    Ciao NLSweb,

    La seconda parte mi trovo in difficoltà. mi sono messo le mani nei capelli, noon so da dove iniziare per adeguarlo alle mie esigenze :( Aspetterò comunque domani a mente fresca :P Per adesso ti ringrazio.

  21. #21
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Ok

    ti mostro un piccolo esempio

    questo è uno script che unisce le due funzioni (controllo e AJAX)
    come potrai vedere viene chiamata la funzione di controllo quando si esce dal campo input dopo averlo modificato , essa esegue la funzione AJAX con argomento il valore immesso nel campo input

    la funzione AJAX esegue cerca.php passando il valore in argomento
    e restituisce una variabile risposta
    quindi controllo se VERO FALSO e mostro l'immagine relativa.

    Codice HTML:
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
     $("#controllo").hide();
     $("input").change(function(){
      controlla();
     });
    });
    
    function controlla(){
     var valore = $("input").val();
     loadXMLDoc(valore);
    }
    
    function loadXMLDoc(id)
    {
    var xmlhttp;
    if (window.XMLHttpRequest)
      {
      xmlhttp=new XMLHttpRequest();
      }
    else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
         var risposta = xmlhttp.responseText;
         risposta = risposta.substr(1, risposta.length-2);
         if (risposta=="VERO"){
          $("#controllo img").attr("src","3.png");
         }else{
          $("#controllo img").attr("src","6.png");
         }
         $("#controllo").show();
        }
      }
    
    xmlhttp.open("GET","cerca.php?ID="+id,true); 
    xmlhttp.send(); 
    }
    </script>  
    il file PHP non fa altro che cercare nel DB il valore , quindi restituisce VERO o FALSO
    Codice PHP:
    <?php

    $con
    =mysqli_connect("","","","");
    if (
    mysqli_connect_errno()) {
    echo
    "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $ID = $_GET['ID'];

    $query = "SELECT * FROM `tabella` WHERE `campo`=\"".$ID."\"";

    $result = mysqli_query($con,$query) or die(mysql_error());

    while(
    $row = mysqli_fetch_array($result)) {
    $risultato = $row['campo'];
    }

    if(
    $risultato===$ID){
    echo
    "VERO";
    }else{
    echo
    "FALSO";
    }

    mysqli_close($con);
    ?>
    Ultima modifica di NLSweb : 26-08-2014 alle ore 22.47.32

  22. #22
    Guest

    Predefinito

    Ciao NLSweb,


    Questo vale per un campo. Ma per la verifica degli altri campi come ci si comporta ???? Grazie per l'esempio

  23. #23
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Citazione Originalmente inviato da NLSweb Visualizza messaggio
    Puoi scrivere diversi piccoli file PHP per eseguire ogni distinto controllo e selezionarli da AJAX con uno switch , o un unico file php in cui passare come argomento il dato inserito e il campo da cercare quindi usare uno switch per differenziare la ricerca del campo nel DB.
    come ti avevo già scritto , basta inserire uno switch (a te la scelta se farlo in JS o PHP)
    chiaramente dovrai passare come argomento funzione non solo il valore del campo ma anche il suo ID

  24. #24
    Guest

    Predefinito

    Secondo te quale mi è più semplice ??? Forse in php

  25. #25
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Personalmente preferisco JS , la semplicità dipende dalla tua esperienza di programmazione...

  26. #26
    Guest

    Predefinito

    Uhmmm proviamo con js tu mi puo guidare ????

  27. #27
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Prendi come riferimento il post #10 , per assegnare la funzione a più elementi
    e integra con l'esempio che ti ho fatto dell'uso di AJAX

    quindi l'esecuzione della funzione di controlli che prima era
    <input id="InputX" type="text" onkeyup="myFunction(X)"/>
    adesso non serve inserire nel input tag
    ma viene gestita da:

    $("input").change(function(){
    controlla();
    });

    qui dovrai modificare per gestire i diversi campi separatamente
    quindi avrai invece del generico $("input")
    una funzione di ogni ID di input tag $("#InputX") che passerà alla chiamata di funzione controlla(X); la X cioè ID del tag

    esempio

    $("#Input1").change(function(){
    controlla(1);
    });

    di conseguenza la funzione controlla(X) chiamerà la funzione AJAX passando il valore del campo ed il suo ID

    function controlla(X){
    var elemento = "#Input"+X;
    var valore = $(elemento).val();
    loadXMLDoc(valore,X);
    }

    la funzione AJAX quando riceverà la risposta VERO FALSO , mostrerà l'immagine relativa solo al quel input tag
    var elemento = "#controllo"+X+" img";
    $(elemento).attr("src","3.png");

    mentre quando chiamerà il file PHP o passerai il parametro ID del campo input (oltre al valore del campo) al file PHP
    $query = "SELECT * FROM `tabella` WHERE `IDcampo`=\"".$ID."\"";

    oppure puoi creare singoli file PHP per ogni singola ricerca ed inserire uno swith in JS per differenziare la chiamata
    xmlhttp.open("GET","cercaX.php?ID="+id,true);

    spero di essere stato chiaro , a volte è più difficile spiegare che fare...
    comunque se hai altri dubbi chiedi ...
    Ultima modifica di NLSweb : 29-08-2014 alle ore 01.43.20

  28. #28
    Guest

    Predefinito

    Ciao NLSweb,

    Attualmente ho solo letto oggi pome se riesco a sentirmela 8che ieri avevo un po di alterazione) spero di rpovare il tuo esempio e di non avere difficoltà (ma speranza invana per quanto riguarda le difficoltà). Appena ho eseguito ti faccio sapere il rultato se tutto è andato lisco come l'olio (ma non ci credo neanche se lo facesse bill gates) sentirai un'urlata da anzio,a ltrimenti un pianto disperato alla de' paperoni quando perde un semplice decino :P Per adesso grazie della teoria e delle spiegazioni.

  29. #29
    Guest

    Predefinito domanda stupida o intelligente ????

    Ciao NLSweb,

    Allora oggi finalmente mi ci sono messo un po' a capire come funziona ma senza avere un buon risultato purtroppo. Questo quanto consigliato da te. Ho provato il tuo codice ma sembra che non mi funzioni (ovviamente a posto della città ho messo il cognome quindi l'ho adattato alle mie esigenze).

    iscrizione.php:

    Codice PHP:

    <html>
    <head>
    <meta charset="UTF-8">
    <title>Iscrizione</title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

    <script type="text/javascript">

    $(document).ready(function(){
    $("#controllo").hide();
    $("input").change(function(){
    controlla();
    });
    });

    function controlla(){
    var valore = $("input").val();
    loadXMLDoc(valore);
    }

    function loadXMLDoc(id)
    {
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
    xmlhttp=new XMLHttpRequest();
    }
    else
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    var risposta = xmlhttp.responseText;
    risposta = risposta.substr(1, risposta.length-2);
    if (risposta=="VERO"){
    $("#controllo img").attr("src","available.png");
    }else{
    $("#controllo img").attr("src","not-available.png");
    }
    $("#controllo").show();
    }
    }

    xmlhttp.open("GET","checkdati.php?ID="+id,true);
    xmlhttp.send();

    * AJAX = Asynchronous JavaScript and XML */

    function loadXMLDoc(id)
    {
    /* questa prima parte della funzione apre la comunicazione con il server in background , senza dover riaggiornare la pagina */

    var xmlhttp;
    if (window.XMLHttpRequest)
    {// codice per le nuove versioni di browser che hanno XMLHttpRequest integrato IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// codice per le vecchie versioni di browser IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    /* qui catturiamo l'evento di quando il readyState cambia */
    /* 0: richiesta non inizializzata */
    /* 1: connessione con il server attivata */
    /* 2: il server ha ricevuto la richiesta */
    /* 3: il server sta eseguendo la richiesta [query] */
    /* 4: il server ha finito e la risposta e' pronta ! */
    /* mentre lo STATUS e' lo stato della pagina , cioe' : 200: "OK" 404: Page not found */

    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    /* qui si inserisce la risposta dal server (quindi l'informazione che abbiamo chiesto al nostro file php */
    /* di prendere dal DataBase , e la si passa al nostro elemento (in questo caso un div) */
    /* da notare che abbiamo richiesto una stringa come risposta , questo perche' non stiamo usando un file XML */
    /* altrimenti avremmo dovuto usare responseXML */
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
    }

    /* qui apri il file dettaglio.php a cui passi la richiesta id e imposti il parametro asincrono=true */
    /* l'importanza di avere una comunicazione asincrona e' che JS non deve aspettare la risposta del server */
    /* ma puo' continuare ad eseguire il codice ed eventualmente a ritardare la risposta in attesa del server */
    /* in questo modo non si creano "colli di bottiglia" , ovvero rallentamenti dovuti a lunghe attese */
    /* chiaramente se si imposta asincrono=false (quindi sincrono) JS fermera' l'esecuzione del codice fino a */
    /* quando il server non gli avra' fornito la risposta .. */

    xmlhttp.open("GET","checkdati.php?ID="+id,true);
    xmlhttp.send();

    /* da notare che AJAX puo' usare sia ASP che PHP */
    }

    </script>
    <style type="text/css">
    #Data{
    position:absolute;
    top:0px;
    left:10px;
    left:20px;

    }
    #Titolo{
    position:absolute;
    top:0px;
    left:395px;
    width: 350px;
    font-size:100%;
    }
    hr {
    position:absolute;
    top: 50px;
    width: 1055px;
    color: #0000ff;
    }
    div {
    position:absolute;
    top: 72px;
    }

    footer{
    bottom:0px;
    height:100px;
    position:absolute;
    text-align:center;
    width:1000px;

    }
    table{
    border:1px solid black;
    }
    </style>
    </head>
    <body>
    <header>

    <div id="Titolo"><h2>Prova inserimento campi</h2> </div>
    <hr>
    </header>

    <footer>
    <div id="footer">
    La pagina è stata creata by Fabio xxx. Tutti i diritti riservati.
    Ogni parte o contenuto di essa se ricopiati o riportati in altre pagine
    senza previaviso e autorizzazione dell'autore, saranno puniti a norma di legge.
    </div>
    </footer>

    <!-- inizio inserimento campi per processarli con ajax -->
    <form action="checkdate.php" method="post" id="contatti">

    <div>
    <label for="cognome">Cognome: <input type ="text" id="cognome" name="cognome" change="input" maxlenght ="15" ></label>
    <p>

    </div> </form


    <?php

    include_once("connettimysqli.php");

    include_once(
    "data.php");



    ?>
    </body>
    </html>
    E questa è la parte relativa al controllo al db. considera che ho un file che raccoglie la connessione mysqli e che ha come variabile $con.


    questo si chiama checkdati.php

    Codice PHP:


    <?php

    require_once("connettimysqli");

    $ID = $_GET['ID'];

    $query = "SELECT * FROM uty WHERE `campo`=\"".$ID."\"";

    $result = mysqli_query($con,$query) or die(mysql_error());

    while(
    $row = mysqli_fetch_array($result)) {
    $risultato = $row['campo'];
    }

    if(
    $risultato===$ID){
    echo
    "VERO";
    }else{
    echo
    "FALSO";
    }

    mysqli_close($con);
    ?>
    Spero insieme a te di capire dove sta l'errore. Grazie.

  30. #30
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Allora.., stai provando con un campo solo..
    .. gli errori che vedo sono :

    il DIV controllo con la relativa IMG non c'è ! post#6
    quindi non visualizzi nessuna immagine

    Usando xmlhttp.open("GET","checkdati.php?ID="+id,true); non c'è bisogno di <form action="checkdate.php" method="post" id="contatti"> , lascia solo il campo input.
    di cui...
    <input type ="text" id="cognome" name="cognome" change="input" maxlenght ="15" >

    non capisco ... change="input" ..... che serve ? non credo che sia un attributo valido..

    in checkdati.php , hai una tabella chiamata uty ed il nome del campo che cerchi è campo ?
    perchè dove c'è scritto campo :
    $query = "SELECT * FROM uty WHERE `campo`=\"".$ID."\"";
    ...
    $risultato = $row['campo'];

    dovresti inserire il nome del campo che contiene il cognome che stai cercando..
    (esempio DB: ID nome cognome indirizzo , ecc. -> nome del campo cognome sara cognome)
    Ultima modifica di NLSweb : 31-08-2014 alle ore 16.06.21

Pagina 1 di 5 123 ... UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •