Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137

    controllo di un valore in form con pulsante e msg se esiste nel db

    Allora avevo già postato questo problema...e siccome nessuno mi ha potuta aiutare ho modificato la questione.
    Io ho un inserimento di dati uno di questo è un acronimo che però devo controllare che non sia già esistente nel db ho quindi creato un bottone 'controlla' a fianco che fa di questo:


    Codice PHP:
    <% 
    function 
    controlla_acro() { 
    var 
    b
    var 
    valore Request.Form("nuovocli.codcli.value"); 
    var 
    ritorna "nill"
    while (!
    rs_acronimocliente.EOF){ 
    rs_acronimocliente.Fields.Item("CodiceCliente").Value
    if (
    valore == b){ 
    ritorna"errore"
    } else { 
    return(
    valore); 

    rs_acronimocliente.MoveNext

    return(
    ritorna); 

    %> 
    il problema è che dovrebbe mettere il valore di ritorno nel campo codcli:


    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="<%codcli=controlla_acro();%>" />
    </
    td
    </
    tr
    il controllo nel recordset funziona sono certa...perchè mi inviava tutti i valori del db (controllato con il jsdebug di chrome che sto utilizzando)
    sto impuntata in questa questione...tra l'altro scrivo in jscript invece che vbscript che conosco meglio...aiutoooooo

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    possibile che non ci sia un'anima pia che sappia dirmi come aggiornare il campo form 'codcli'
    con il valore di ritorno della funzione controlla_acro()..


    Codice PHP:
    <input name="codcli" type="text" class="Stile31" id="codcli" size="10" /> 
    <
    input type="button" name="Submit" value="Controlla" onclick="<%codcli=controlla_acro();%>" /> 
    non riesco a trovare una soluzione....

    vi prego...

  3. #3
    Premetto che non ho mai programmato in JScript in una pagina ASP.
    In ogni caso ho un serio dubbio su questa riga di codice:

    codice:
    var valore = Request.Form("nuovocli.codcli.value");
    Se è come con il VBScript, dovrebbe essere:

    codice:
    var valore = Request.Form("codcli");
    Chi non cerca trova.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    ho provato ma il problema è nel mettere il valore di ritorno dalla funzione nel campo form o comunque scrivere qualcosa per avvertire

  5. #5
    In effetti quel tuo codice non può funzionare, in particolare questa riga:
    codice:
    <input type="button" name="Submit" value="Controlla" onclick="<%codcli=controlla_acro();%>" />
    Non puoi richiamare la funzione controlla_acro() da un pulsante, in quanto la funzione risiede sul server mentre la pagina col pulsante viene eseguita nel contesto del browser.

    Se guardi il codice HTML della pagina risultante, dovresti trovare qualcosa tipo questo:
    codice:
    <input type="button" name="Submit" value="Controlla" onclick="" />
    Ti consiglio di modificare così:
    codice:
    <input type="button" name="Submit" value="Controlla" />
    Poi, all'inizio della pagina, scrivi questo codice per capire se l'utente ha premuto il pulsante:
    codice:
    <%
    var acro;
    
    function controlla_acro() {
       //...
    }
    
    if(Request.Form("Submit"))
    {
       acro = controlla_acro();
       //...
    }
    
    //...
    
    %>
    Chi non cerca trova.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    oddio mi da undefined il valore della form,,....ora ho fatto di questo...
    dopo la lettura del recordset prim dell'html ho messo:
    nella file c'è la funzione:
    Codice PHP:
    <% 
    function 
    controlla_acro ()
    {

    valore Request.Form("codcli");

    Response.Write ("valore:"valore);

    while (!
    rs_acronimocliente.EOF){ 
       
    rs_acronimocliente.Fields.Item("CodiceCliente").Value;
       if (
    valore != b) {
          
    ritorna valore;
         break;
        } else {
         
    ritorna "errore";
       } 
         
       
    rs_acronimocliente.MoveNext;
    }

    Response.Write(ritorna);
    }
    %> 
    Codice PHP:
    e la form è così:
          <
    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
    ovviamente il response.write va a finre nel campo onclick che ho controllato nel debug ma il problema è che comunque mi da:
    valore:undefined
    aiuto...potrebbe essere qualcosa inerente più che altro al problema server/client cioè un
    problema di tempi?

  7. #7
    Visto che si tratta di un file di solo codice JScript, meglio se rinomini controlla_acro.asp in controlla_acro.js (asp si usa solo per le pagine che devono essere trasmesse al browser). Meglio ancora se controlla_acro.js lo sposti in una cartella non accessibile dal browser (se hai installato le estensioni di FrontPage nel server dovresti avere una cartella denominata _private).

    La funzione controlla_acro non ritorna un valore, devi usare infatti "return valore;" e non "Response.Write(ritorna);". Dovrebbe essere così:

    codice:
    <% 
    function controlla_acro () 
    { 
    
    valore = Request.Form("codcli"); 
    
    Response.Write ("valore:"+ valore); 
    
    while (!rs_acronimocliente.EOF){ 
       b = rs_acronimocliente.Fields.Item("CodiceCliente").Value; 
       if (valore != b) { 
         ritorna = valore; 
         break; 
        } else { 
         ritorna = "errore"; 
       } 
         
       rs_acronimocliente.MoveNext; 
    } 
    
    return ritorna; 
    } 
    %>
    Come ti ho già scritto prima, scrivere:
    codice:
    <input type="button" name="Submit" value="Controlla" onclick="<%controlla_acro();%>" />
    non serve proprio a nulla, in quanto l'evento onclick viene eseguito nel contesto del browser, mentre la tua funzione controlla_acro() è sul server e non è accessibile.

    Ho l'impressione che tu stia facendo molta confusione tra il codice javascript nel browser e quello eseguito nel server...
    Chi non cerca trova.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    quello della confusione l'ho pensata anche io...ma la funzione non è nel codice avendola inclusa quando chiamo la pagina? e altrimenti che cosa dovrei fare?
    ora provo a fare le cose che dici tu..anche se temo siano poco utili alla soluzione
    grazie comunque della partecipazione

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    ho fatto una pensata
    ma perchè faccio questo controllo su asp..cioè via server? io ho già letto i valori che mi servono del db
    Codice PHP:
    <%
    var 
    rs_acronimocliente_cmd Server.CreateObject ("ADODB.Command");
    rs_acronimocliente_cmd.ActiveConnection MM_conn_inserisci_STRING;
    rs_acronimocliente_cmd.CommandText "SELECT CodiceCliente FROM AcronimoCliente";
    rs_acronimocliente_cmd.Prepared true;

    var 
    rs_acronimocliente rs_acronimocliente_cmd.Execute();
    var 
    rs_acronimocliente_numRows 0;
    %> 
    e allora se io lo faccio via client inserendo questa funzione?
    Codice PHP:
    function controlla_acro() {
    valore codcli// qui devo controllare come javascript recupera la form.value

    alert ("valore:"valore); 

    while (!
    rs_acronimocliente.EOF){ 
       
    rs_acronimocliente.Fields.Item("CodiceCliente").Value
       if (
    valore != b) { 
         
    ritorna valore
         break; 
        } else { 
         
    ritorna "errore"
       } 
         
       
    rs_acronimocliente.MoveNext// ovviamente questa la devo modificare anche se non so come scorrere il recordset...anzi se hai suggerimenti... :mame: 


    return(
    ritorna);

    che dici??

  10. #10
    No, perché la funzione controlla_acro() accede ad un database e ciò può avvenire solo dal server.
    Chi non cerca trova.

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.