Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137

    controllo di input in una form su un campo per evitare duplicati

    Salve è molto che non passo di qui in questo periodo ho frequentato di più la parte di flash. Ho un problema probabilmente molto semplice ma sto facendo un po' di casini sui linguaggi mi confondono le idee non sono neanche tanto sicura sia questo lo spazio giusto..ma eventualmente scusatemi e indicatemi dove andare
    Allora io ho un db con inserimento nuovo cliente (da web) e fin qui tutto ok...nella tabella nuovo cliente c'è un campo che si chiama acronimo e che non deve essere duplicato..
    siccome non ricordavo come si controlla il cambiamento di stato dell'input (cioè quando l'ho inserito) ho inserito a fianco del campo un bottone 'controlla'

    Codice PHP:
    <input name="codcli" type="text" class="Stile31" id="codcli" size="10" /> 
    <
    input type="button" name="Submit" value="Controlla" onClick="return ControllaAcronimo();"
    la funzione ControllaAcronimo(); è questa:
    Codice PHP:
    function ControllaAcronimo() { 
    for(
    I=0< (<%=(rs_acronimocliente_total)%>); I++) {
     if(
    nuovocli.codcli.value == <%=(rs_acronimocliente.Source[I])%>) 

    alert("occhio il codice è già utilizzato");
     } 

    return ; 

    dreamweaver crea un record set in automatico
    (io non riesco mai a utilizzare automatismi ma la persona che lavora con me a questo lavoro l'ha inserita)

    Codice PHP:
    <% 
    var 
    rs_acronimocliente Server.CreateObject("ADODB.Recordset"); 

    rs_acronimocliente.ActiveConnection MM_conn_inserisci_STRING;
     
    rs_acronimocliente.Source "SELECT CodiceCliente FROM AcronimoCliente"
    rs_acronimocliente.CursorType 0
    rs_acronimocliente.CursorLocation 2
    rs_acronimocliente.LockType 1;
     
    rs_acronimocliente.Open(); 
    var 
    rs_acronimocliente_numRows 0
    %> 
    ma ovviamente non funziona...anche perchè
    rs_acronimocliente_total
    lo vede solo dreamweaver
    forse c'è un modo più semplice??
    grazie...mi sono impuntata..e non riesco ad uscirne...

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    Ho studiato un po'...non si finisce mai...
    e ho capito che le funzioni che crea Dreamweaver sono funzioni in Jscript una versione microsoft contrapposta a VBscript che io conosco meglio. (la sintassi è una via di mezzo tra javascript e VBscript, ma lato server, ma questo sicuramente lo sapete meglio di me)
    A questo punto devo cercare di lavorare sulla funzione ControllaAcronimo, ma non riesco proprio a trovare un strada..oddio che confusione...
    C'è qualche anima pia??

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    ok ho capito che il problema è nel codice jscript...e quanche anima pia mi può spostare nel giusto spazio???
    ho cambiato la funzione in:
    Codice PHP:
    <% 
    function 
    controlla_acro() { 
    var 
    valoreb
    valore Request.Form ("codcli"); 
    while (!
    rs_acronimocliente.EOF){ 
    rs_acronimocliente.Fields.Item("CodiceCliente").Value
    if (
    valore == b){ 
    Response.Write (b) ; 
    break; 
    } else { 
    Response.Write (valore+"-non uguale-"+); 

    rs_acronimocliente.MoveNext


    %> 
    e, a parte il problema che non so come tradurre l"alert" di javascript e quindi mi scrive nel campo della form il messaggio, il risultato mi fa capire che legge perfettamente i campi nel db ma che non riesce a inserire il valore digitato nell'input form 'codcli'
    mi inserisce tanti quanti sono i record del db
    undefined-non uguale-WIN <ovviamente WIN cambia>
    ma in buona sostanza la variabile 'valore' è undefined...
    vi prego qualcuno ha un suggerimento?

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Originariamente inviato da TOPUS
    ok ho capito che il problema è nel codice jscript...e quanche anima pia mi può spostare nel giusto spazio???
    Sposto in Javascript (spero vada bene, eventualmente là vedranno cosa fare...)

  5. #5
    l'alternativa, se non trovi cosa non va proseguento in questa strada potrebbe essere quella di fare una richiesta ajax al server quando premi sul bottone controlla acronimo, il server fa una query al db per vedere se è già utilizzato, risponde al client in maniera affermativa o negativa e il client notifica all'utente se quell'acronimo è già utilizzato.
    Inoltre quando fai la query non farti ritornare tutta la tabella per poi scorrerla e fare i confronti con la stringa di cui vuoi verificare la presenza: restringi la query con la clausola where

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    Intanto grazie della risposta, ma volevo evitare di mettere anche ajax dentro...già mi sembra un gran casino.
    Quello che non mi riesce è il controllo dell'item della form, mi da sempre undefined...
    la funzione io lìho inserita in cima

    Codice PHP:
    <% 
    var 
    rs_acronimocliente_cmd Server.CreateObject ("ADODB.Command"); rs_acronimocliente_cmd.ActiveConnection MM_conn_inserisci_STRINGrs_acronimocliente_cmd.CommandText "SELECT CodiceCliente FROM AcronimoCliente"rs_acronimocliente_cmd.Prepared true
    var 
    rs_acronimocliente rs_acronimocliente_cmd.Execute(); 
    var 
    rs_acronimocliente_numRows 0
    %> 
    <% 
    function 
    controlla_acro() { 
    var 
    b; var esiste =false
    var 
    valore Request.Form("codcli"); 
    while (!
    rs_acronimocliente.EOF){ 
    rs_acronimocliente.Fields.Item("CodiceCliente").Value
    if (
    valore == b){ 
    esiste=true 
    break; 
    } else { 
    esiste=false 

    rs_acronimocliente.MoveNext
    }
     
    Response.Write(valore); 

    %> 

    <!
    DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"

    le sto provando tutte...e sempre undefined mi da..
    nella form ora c'è questo:

    Codice PHP:
    <tr
    <
    td width="262" class="Stile29">Acronimo nuovo cliente: </td
    <
    td width="488" class="Stile30">
    <
    input name="codcli" type="text" class="Stile31" id="codcli" size="10" /> 
    <
    input type="button" name="Submit" value="Controlla" onclick="<%controlla_acro();%>" />
    </
    td> </tr
    ma come faccio a vedere su jscript una finestra tipo alert(); di javascript???


  7. #7
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Di grazia, riprovami la prima function con l' aggiunta degli apici in:

    if(nuovocli.codcli.value == "<%=(rs_acronimocliente.Source[I])%>" )

    document.forms["nuovocli"].elements["codcli"].value

    può essere una valida alternativa a nuovocli.codcli.value

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    mi dice:


    Errore di run-time di Microsoft JScript (0x800A1391)
    'document' non è definito

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