Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    input con controllo database

    Ciao a tutti ragazzi ho un problema e sinceramente sono in panne..
    devo creare una input text che ogni volta che inserisco la lettera mi fa il controllo sul database se quest ultima esiste gia..mi spiego meglio.Ho un sito dove ci si registra e per esempio devo inserire un nick..clicco sulla input e ogni volta che inserisco qualcosa deve controllare nella tabella che non esista gia quel nome..Come posso fare?Ce qualche esempio?

  2. #2
    sull' onkeyup richiami una funzione che effettua una chiamata ajax verso una pagina (.php,.asp...) effettua il controllo sul db e restituisce un valore, ad esempio 0 se disponibile 1 in caso contrario.
    Oppure potresti utilizzare qualche libreria per la validazione dei form.
    http://bassistance.de/jquery-plugins...in-validation/


  3. #3
    grazie della risp dopo provo e ti faccio sapere

  4. #4
    ragazzi ho fatto questa funzione:

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>Hello World</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    var time_variable;function getXMLObject1() {var xmlHttp = false;try {xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") }catch (e) {try {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
    }
    catch (e2) {
    xmlHttp = false
    }
    }
    if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
    }
    return xmlHttp;
    }

    var xmlhttp = new getXMLObject1();

    function helloWorld() {

    var getdate = new Date();
    if(xmlhttp) {

    document.getElementById('load').innerHTML ="<img src=\"loading.gif\" alt=\"loading\"></img>";
    var nome = document.getElementById("nome");


    xmlhttp.open("POST","controlla.php",false);
    xmlhttp.onreadystatechange = handleServerResponse;
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("nome=" + nome.value);
    }
    }

    function handleServerResponse() {
    if (xmlhttp.readyState == 4) {
    document. getElementById("load").innerHTML = '';
    document. getElementById("load").innerHTML = 'fatto';
    }
    }
    </script>
    </head>
    <body>
    <input type="text" name="nome" id="nome" >
    <input type="button" value="cerca" onClick="helloWorld();">
    <div id="load"> </div>
    </body>
    </html>

    Mi esegue il php ora posto quello:

    <?php
    $nome=$_POST['nome'];
    $conn=mysql_connect("localhost","***","*****");
    if(!$conn)
    {
    echo"IMPOSSIBILE CONNETTERSI";
    exit();
    }
    $db=mysql_select_db("hellocom_hello");
    if(!$db)
    {
    echo"IMPOSSIBILE APRIRE DATABASE";
    exit();
    }
    $dati='SELECT nome_utente FROM registrazione_utente';
    $res=mysql_query($dati);
    if(!$res){
    echo"no";
    }else{
    while($data=mysql_fetch_object($res)){
    if($nome==$data->nome_utente){
    echo"uguale";
    }else{echo"diverso";}
    }
    }
    ?>

    ora la domanda e come posso fare per fare in modo che alla mia funzione venga restituito 0 quando il nome e uguale e 1 quando e diverso?
    Non so se quella funzione e adatta di solito la uso per le registrazioni anche perche ora mi restituisce giustamente sempre fatto in ogni caso.

  5. #5
    prima di tutto correggi
    Codice PHP:
    xmlhttp.open("POST","controlla.php",false); 
    con

    Codice PHP:
    xmlhttp.open("POST","controlla.php",true); 
    successivamente nella tua pagina .php
    Codice PHP:
    if($nome==$data->nome_utente){
      echo 
    "1";
    }
    else{
      echo 
    "0";

    ed infine modifica la funzione handleServerResponse cosi

    Codice PHP:
    function handleServerResponse() {
    if(
    xmlhttp.readyState == 4){
        if(
    xmlhttp.status == 200){
          if(
    xmlhttp.responseText=="1"){
              
    //nome esistente
          
    }
          else{
              
    //nome disponibile
          
    }
        }else{
          
    alert("Problema chiamata");
        }
      }


  6. #6
    grazie funziona ho solo un problemino..ho provato lo script senza ajax e mi stampa ad es 001 questo perche sono dentro il while e quindi mi controlla le righe come posso risolvere?

  7. #7
    .ho provato lo script senza ajax
    che vuoi dire? :master:

  8. #8
    allora come vedi nel php recupero la riga e faccio il while..bene ad esempio se il nome che inserisco e ugaule a quello delle riga 3 della tabella lui mi stampa 001.

  9. #9
    giustamente perche sei in un ciclo.
    ma perche non effettui una query condizionata del tipo
    Codice PHP:
    $dati="SELECT nome_utente FROM registrazione_utente where nome = '".$nome."'"
    oppure
    Codice PHP:
    $dati="SELECT count(id) FROM registrazione_utente where nome = '".$nome."'"
    e successivamente utilizzi la funzione mysql_num_rows per controllare se esiste o meno quel nome..

    altrimenti prova ad inserire
    Codice PHP:
    while($data=mysql_fetch_object($res)){
      if(
    $nome==$data->nome_utente){
         echo
    "1";
         break;
      }
       else{
         echo
    "0";
         continue;
       }


  10. #10
    perfetto funziona a meravigli..posto la soluzione usata..grazie mille dell aiuto

    $dati="SELECT nome_utente FROM registrazione_utente where nome_utente = '".$nome."'";
    $res=mysql_query($dati);
    if(!$res){
    echo"no";
    }
    $num_rows = mysql_num_rows($res);
    if($num_rows==true){
    echo "1";
    }else{
    echo"0";

    }

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.