Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema Update

  1. #1
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111

    Problema Update

    Ciao a tutti,
    avrei una questione da sottoporvi: sto creando una pagina che riceve un parametro in ingresso e, dopo aver recuperato il record interessato da db, popola la tabella visualizzata e permette di effettuare operazioni di modifica dei dati sulla stessa. Fin qui non ho problemi...
    quello che mi mette in crisi è il punto seguente: in questa pagina recupero tramite <select> un valore corrispondente al settore, e in base al suo valore posso recuperare il valore della rubrica di una data azienda sempre tramite un <select>...
    Io ho fatto quindi una funzione onchange sul primo menu a tendina che effettua una submit x passare il parametro appena scelto e refreshare di conseguenza la pagina... Facendo così però vado in modifica dei dati appena inseriti e/o cambiati, e questo voglio che succeda solo cliccando sul bottone di modifica... Come posso fare??
    Ogni soluzione è ben accetta, suggeritemi qualsiasi cosa possa funzionare...
    Grazie

  2. #2
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    Posto qui di seguito il codice della pagina... Le funzioni di recupero parametri dal db sono incluse in un'altra pagina, e poi c'è sicuramente qualche altra cosa da mettere a posto...

    codice:
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" title="main" href="/Vetrina Aziende/stile.css" type="text/css" />
    <title>Modifica documenti</title>
    </head>
    <body>
    <script  language="javascript">
    function chiudi(){
        if(document.FrmInvio.wdm_doc_status.value=="Bozza"){
            document.FrmInvio.wdm_doc_status.value="Approvato";
            document.FrmInvio.wdm_doc_status_id.value="3";
    	}
    }
    function callSub(){
        document.FrmInvio.submit();
    }
    </script>
    <form action="<%=action%>" name="FrmInvio" method="post">
    <%
    'Recupero dei parametri
    wdm_doc_id = Request("wdm_doc_id")
    settoreForm = Request("settore")
    'Recupero i dati dal DB
    Sql = "EXEC p_sel_doc_id @wdm_doc_id = " & wdm_doc_id
    Call OpenDb(Sql)
    tipo = RS("wdm_doc_type_id")
    wdm_doc_title = RS("wdm_doc_title")
    wdm_doc_abstract = RS("wdm_doc_abstract")
    wdm_doc_owner= RS("wdm_doc_owner")
    wdm_doc_cr_user_id = RS("wdm_doc_cr_user_id")
    if wdm_doc_cr_user_id = "Valetti" then
        wdm_user_lastname = "Valetti"
        wdm_user_firstname = "Simone"
        wdm_doc_mo_user_id = "Valetti"
    end if
    wdm_doc_status_id = RS("Wdm_doc_status_id")
    wdm_doc_image_Id = RS("Wdm_doc_image_Id")
    settore = RS("Cod_settore")
    if isNull(settore) then
        action = "moddoc.asp"
    else
        action = "FormMod.asp"
    end if
    Call CloseDb()
    'Se il tipo documento è diverso da news del giorno e primo piano allora disabilito primo piano e data scadenza
    If wdm_doc_type_id <> 22 AND wdm_doc_type_id <> 23 Then
        EtichettaReadOnly = "disabled"
    End If
    'Controllo se il documento è stato approvato non si può più modificare
    if (wdm_doc_status_id < 2) then
        FlagEnabled = ""
    else
        FlagEnabled = "readonly"
    end if
    if imgtesta <> "" then
        SQLIMG = "exec p_sel_img_desc @doc_header ='" & imgtesta & "'"
        Call OpenDb(SQLIMG)
        descimmagine = RS("wdm_doc_image_desc")
        Call CloseDb()
    end if
    if imgcoda <> "" then
    	SQLIMG = "exec p_sel_firme_desc @doc_header ='" & imgcoda & "'"
    	Call OpenDb(SQLIMG)
    	descimmaginecoda = RS("wdm_doc_firme_desc")
    	Call CloseDb()
    end if
    %>
    <div align="center" id="titolodoc"> Modifica Documento </div>
    <INPUT name="wdm_doc_id" value="<%=wdm_doc_id%>" type="hidden" />
    
    
    <%
    sqlTipo = "exec p_sel_doc_type_upd @Wdm_doc_type_id =" & tipo
    Call OpenDb(sqlTipo)
    %>
    <div id="titolodoc">Tipo
        <SELECT name="tipo" style="HEIGHT: 22px; WIDTH: 309px">
    <%
        if Not RS.EOF then
            valore = RS("wdm_doc_type_desc")
    %>
            <OPTION value="<%=tipo%>"><%=valore%></OPTION>
        </SELECT>
    <%
        end if
    	Call CloseDB()
    %>
    </div>									
    <div id="titolodoc">Titolo
    	<input name="wdm_doc_title" value="<%=wdm_doc_title%>" />
    </div>
    <div id="titolodoc">Abstract
        <textarea name="wdm_doc_abstract"><%=wdm_doc_abstract%></textarea>
    </div>
    <div id="titolodoc">Immagine di Testa
        <SELECT name="wdm_doc_header_img" style="HEIGHT: 22px; WIDTH: 309px" >
    <%
    'Connesione al DataBase per recuperare il valore
    SqlImg = "EXEC p_sel_image_upd @id = " & tipo
    SqlImg = SqlImg & ", @detpartment = 3"
    Call OpenDb(SqlImg)
    if RS.EOF then
    else
        RS.MoveFirst
    end if
    if descimmagine <> "" then
    %>
            <option value="<%=imgtesta%>"><%=descimmagine%></option>
    <%
    end if
    DO While Not RS.EOF
    %>
            <option value="<%=RS("wdm_doc_image_header")%>"><%=RS("wdm_doc_image_desc")%></option>
    <%
        'Ciclo
        RS.MoveNext
        Loop
    %>
    	</SELECT>
    <%
    Call CloseDB()
    %>
    </div>
    <div id="titolodoc">In Primo Piano
    <%
    if wdm_doc_evidenza = "True" then
    %>
        <input name="wdm_doc_evidenza" type="checkbox" checked <%=EtichettaReadOnly%> />
    <%
    else
    %>
        <input name="wdm_doc_evidenza" type="checkbox" <%=EtichettaReadOnly%> />
    <%
    end if
    %>
    </div>
    <div id="titolodoc">Data Scad. Primo Piano
    	<input maxlength="2" name="ggdtscadenza" value="<%=ggscadenza%>" <%=FlagEnabled%> /> /
    	<input maxlength="2" name="mmdtscadenza" value="<%=mmscadenza%>" <%=FlagEnabled%> /> /
    	<input maxlength="4" name="yydtscadenza" value="<%=yyscadenza%>" <%=FlagEnabled%> />
    </div>
    <div id="titolodoc">Stato
    <%
    if wdm_doc_status_id = 1 then
    %>
        <input name="wdm_doc_status" value="Bozza" readonly />
        <input name="wdm_doc_status_id" value="1" type="hidden" />
    <%
    else
    %>
        <input name="wdm_doc_status" value="Approvato" readonly />
        <input name="wdm_doc_status_id" value="3" type="hidden" />
    <%
    end if
    %>
    </div>
    <div id="titolodoc">Proprietario
        <SELECT name="wdm_doc_owner" style="HEIGHT: 22px; WIDTH: 309px">
            <option value="<%=wdm_doc_owner%>"><%=wdm_user_lastname%><%=wdm_user_firstname%></option>
    <%
    'Connesione al DataBase per recuperare il valore
    Sql = "EXEC p_sel_users @code = " & wdm_doc_owner
    Call OpenDb(Sql)
    DO While Not RS.EOF
    %>
            <option value="<%=RS("wdm_user_code")%>"><%=RS("wdm_user_lastname")%><%=RS("wdm_user_firstname")%></option>
    <%
        'Ciclo
        RS.MoveNext
        Loop
    %>
        </SELECT>
    <%
    Call CloseDB()
    %>
    </div>
    <%
    if tipo = 3 then
    %>
    <div id="titolodoc">Anno
    	<input name="wdm_doc_AnnoArt" value="<%=wdm_doc_AnnoArt%>" readonly />
    </div>
    <div id="titolodoc">Numero
    	<input name="wdm_doc_Numero" value="<%=wdm_doc_Numero%>" readonly />
    </div>
    <div id="titolodoc">N.Rif.Notizia
    	<input name="wdm_doc_NRifNot" value="<%=wdm_doc_NRifNot%>" readonly />
    </div>
    <div id="titolodoc">N.Pagina
    	<input name="wdm_doc_NPagina" value="<%=wdm_doc_NPagina%>" readonly />
    </div>
    <div id="titolodoc">Settore
        <select name="settore" style="HEIGHT: 22px; WIDTH: 309px" onchange="callSub()" />
            <option></option>
    <%
        sqlSettore = "exec p_sel_settore"
        Call OpenDb(sqlSettore)
        DO While Not RS.EOF
            settore2 = cstr(RS("cod_settore"))
            if settore2 = settoreForm then
    %>
            <OPTION value="<%=RS("cod_settore")%>" selected="selected"><%=RS("des_settore")%></OPTION>
    <%
            else
    %>
            <OPTION value="<%=RS("cod_settore")%>"><%=RS("des_settore")%></OPTION>
    <%
            end if
            'Ciclo
            RS.MoveNext
            Loop
    %>
        </SELECT>
    <%
        Call CloseDB()
    %>
    </div>
    <div id="titolodoc">Rubrica
        <select name="rubrica" style="HEIGHT: 22px; WIDTH: 309px" />
            <OPTION></OPTION>
    <%
        if isNull(settoreForm) then
            settoreForm = "''"
        end if
        sqlRubrica = "exec p_sel_rubrica @settore = " & settoreForm
        Call OpenDb(sqlRubrica)
        DO While Not RS.EOF
    %>
            <OPTION value="<%=RS("cod_rubrica")%>"><%=RS("des_rubrica")%></OPTION>
    <%
            'Ciclo
            RS.MoveNext
            Loop
    %>
        </SELECT>
    <%
        Call CloseDB()
    %>
    </div>
    <div id="titolodoc">Titolo Allegato 1
    	<input name="wdm_doc_titoloall1" value="<%=wdm_doc_titoloall1%>" <%=FlagEnabled%> />
    </div>
    <div id="titolodoc">Titolo Allegato 2
    	<input name="wdm_doc_titoloall2" value="<%=wdm_doc_titoloall2%>" <%=FlagEnabled%> />
    </div>
    <%
    end if
    %>
    <input type="button" value="Chiudi" onclick="chiudi()" />
    <input type="submit"  value="Modifica"/>
    <input type="reset" value="Reset"  />
    </form>
    </body>
    </html>

  3. #3
    codice:
    function callSub(){
        document.FrmInvio.submit();
    }

    non puoi usare un submit....oppure prima di fare il submit ci metti in querystring all'action una variabile per dirgli "Ehi, sto facendo un change della select...mantienimi i dati ma non updatare il database"

    oppure i menu a tendina li riempi usando Javascript+XMLHTTP

  4. #4
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    Originariamente inviato da santino83_11_04
    prima di fare il submit ci metti in querystring all'action una variabile per dirgli "Ehi, sto facendo un change della select...mantienimi i dati ma non updatare il database"
    non mi è chiaro questo concetto.... io l'operazione di update la faccio in un'altra pagina, vuoi dire ke in quella pagina devo fare un controllo su una variabile mia ke se x esempio vale sì faccio l'update mentre se vale no torno indietro??

  5. #5
    Originariamente inviato da t30n3
    non mi è chiaro questo concetto.... io l'operazione di update la faccio in un'altra pagina, vuoi dire ke in quella pagina devo fare un controllo su una variabile mia ke se x esempio vale sì faccio l'update mentre se vale no torno indietro??


    ma l'onchange della select deve per forza fare un submit? non potresti fare una cosa del genere:

    codice:
    function callSub(){
           document.FrmInvio.action="pagina_che_stai_guardando.asp?id_documento=...&option_value=..."
        document.FrmInvio.submit();
    }
    in maniera che refreshi nella stessa pagina e non vada alla pagina di update?

  6. #6
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    Originariamente inviato da santino83_11_04
    ma l'onchange della select deve per forza fare un submit? non potresti fare una cosa del genere:

    codice:
    function callSub(){
           document.FrmInvio.action="pagina_che_stai_guardando.asp?id_documento=...&option_value=..."
        document.FrmInvio.submit();
    }
    in maniera che refreshi nella stessa pagina e non vada alla pagina di update?
    no era quello ke stavo proprio chiedendo... se c'era un altro metodo... ora lo provo, grazie

  7. #7
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    così non mi funziona... forse non ho capito come passare il parametro, boh!?!

    no oki il parametro lo passo, xò così facendo se modifico qualche altro campo non mi prende la modifiche e devo passare anche loro nel link....
    e inoltre poi dovrei effettuare un confronto tra il nuovo valore del settore e quello vecchio ke recupero dal db, giusto??

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.