pagina di modifica dati utente

  • Creatore Discussione Creatore Discussione spilvy
  • Data di inizio Data di inizio
magari potessi...

.... aiutarti.. ma non sono ancora così esperta!!! xò ci guardo... tranquillo tranquillo.. nessun problema... io continuo a provare se x caso azzecco la stringa di codice giusta x il mio problema... grassie lo stesso!!!! :fonzie: ciaoooooooooooooooooooooooooooooooooooo ;) :jolly: :D
 
Forse ho trovato il modo!! ;)
Dicevi che il tuo tutor parlava di un singolo campo hidden e una variabile in più..

Prova così:
all'inizio della ASP aggiungi una variabile (per esempio di nome 'verifica') che servirà a far capire alla ASP se sta venendo chiamata per la prima volta o se sta avvenendo il reload e fai

<% ...
verfica=request.form("v")
...
%>

Siccome la prima volta che accedi alla ASP non hai nessun valore per v (in quanto 'v' non esiste nel form della ASP da cui entri in questa), la variabile 'verifica' prenderà come valore "" (null).
Questo farà capire al programma che è la prima volta che viene chiamato.

A questo punto, nel form da cui parte tutta la faccenda dell'onChange e del reload aggiungi un
<input type=hidden name=v value="ok">

Ora posizionati subito dopo la select che preleva i dati utente dal DB e fai
<%
...
sql=" select * "_
&" from AUtente U "_
&" inner join TCitta C on U.ID_Citta = C.ID_Citta"_
&" where ID_Utente="& request.form("id_utente") &""_
&" order by Cognome "

IF verifica="" THEN --> 'significa quindi che la ASP sta venendo chiamata per la prima volta

rs.Open StringaSQL,oggconnection --> 'fallo qui all'interno dell'IF mi raccomando!

if not rs.eof then
id = rs("ID_Utente")
utente = rs("Nome_Utente")
pass = rs("Password")
nome = rs("Nome")
cognome = rs("Cognome")
data = rs("Data_Nascita")
indirizzo = rs("Indirizzo")
telefono = rs("Telefono")
email = rs("Email")
paese= rs("Citta")
cap = rs("CAP")
prov = rs("Provincia")
end if

ELSE --> la variabile verifica è = a "ok", ovvero non è vuota, e ciò significa che sta avvenendo il reload e la ASP capisce che NON deve leggere i dati utente da DB ma solo dai value degli input text

id=request.form("id_utente")
utente = request.form("utente")
pass = request.form("password")
nome = request.form("nome")
cognome = request.form("cognome")
data = request.form("nascita")
indirizzo = request.form("indirizzo")
telefono = request.form("telefono")
email = request.form("email")
paese = request.form("citta")
cap = request.form("cap")
prov = request.form("provincia")

END IF
...
%>
In questo modo nel reload non c'è rischio di perdere i riferimenti perchè non si va più a collegare al DB per avere i dati dell'utente e riuscirai a modificare solo i campi provincia, città e cap senza problemi (SPERO! :D )!

Fammi sapere! :byebye:
 
Ultima modifica:
ma...

... :book: il tuo "verifica" non può essere sostituito con: request.form("id_utente") <> "" then
(connetto, eseguo le varie query x vedere i dati nel form)
else
response.redirect ad una pagina di errore.... ?!?!?!?

ovviamente messo proprio all'inizio,subito dopo l'apertura del body... si, insomma, prima del codice asp x la connessione al db, ecc... potrebbe andare?!
 
No, non si può perchè id_Utente (almento a quanto ho capito) è uno dei vari riferimenti che la ASP non può ricevere come null, perchè quando la chiami la prima volta serve come riferimento per caricare i dati Utente dal DB (SELECT * ecc.. WHERE ID_Utente="& request.form("id_utente")), e poi devi sempre mantenerne il valore, senza mai azzerarla, perchè altrimenti nell'UPDATE che farai succesivamente non avrai più nessun riferimento e la ASP non saprà più che record aggiornare. ;)

Così come dice tu la IF risulterebbe sempre vera (ossia request.form("id_utente") sarebbe sempre <> "") e quindi ti ritroveresti con lo stesso problema di prima, cioè ricaricherebbe sempre la pagina coi dati presi da DB!

Più o meno, hai capito?
 
ok...

... ho risolto il problema, MA SE NE APRE UN ALTRO!!! UFFA!!! :ister: cerco di farlo da sola stavolta xò!!!! grazie x tutto!!! ciaoooooooooooooooooooooooooooooooooooooo :fonzie: ;)
 
Figurati!!

E' questo il bello della programmazione, è una sfida continua!! :fonzie:

Ricordati sempre, quando il PC ti da problemi, che sei nata tu prima di lui,e perciò non potrà fregarti mai!! :D :D :D

Buon lavoro, ciao!! :byebye:
 
altro quesito

ciao a tutti... o a pole se risponde solo lui!!!
ho una pagina di login con un semplice form di invio dati...
se i dati inseriti nel form corrispondono all'amministratore, reindirizzo tutto ad una pagina di elenco, altrimenti vado nella pagina in cui mi viene mostrato un form con i miei dati.
i dati vengono selezionati (ovviamente con l'asp) con una query di selezione che cerca la chiave utente, nome utente, la password e il valore dell'amministratore....

il risultato del valore dell'amm. viene attribuito ad una variabile.
IF questa variabile è = al valore "1", c'è un response.redirect alla pagina dell'elenco, altrimenti vado ai miei dati se l'utente registrato non è amministratore. END IF

si pongono 2 problemi:

1) nell'action del form x l'inserimento utente e password, cosa metto?

2) scrivendo l'IF, non riesco più a vedere la mia pagina con il browser, anzi, mi dà errore... :confused: :eek:
grazie della lettura
 
Mi sa che ci han abbandonati in questa discussione!! :p
Cmq ho un buchetto di un quarto d'ora perciò, rieccomi qui!! :D

1-Nella action del form devi chiamare la ASP che fa il controllo (se è questo che vuoi sapere)
2-Che errore ti da quando legge l'IF?
 
ihihih...

...cmq... x l'errore, vengo reindirizzata alla mia solita pagina di errore... e x l'action, dovrei riscrivere l'IF?!?!? :confused:
 
mi dice solo...

... si è verificato un errore nella procedura....
x l'asp ecco il codice:
<%
sql="select ID_Utente, Amministratore, Nome_Utente,Password"_
&" from AUtente"_
&" where Nome_Utente ='"& request.form("utente") &"'"_
&" and Password ='"& request.form("password") &"'"_
&" order by ID_Utente "

(eseguo il recordset)

amm = rs("Amministratore")
id = rs("ID_Utente")
%>
<%
if amm = "1" then
response.redirect("pagina dell'elenco")
response.end
else
response.redirect("pagina dati utente nel form")
response.end
end if
%>
 
Ecco un recordset fatto come si deve!!!!!!!


Set Conn=Server.CreateObject("ADODB.Connection")
strConn="Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/AgendaDatasys.mdb")

Conn.Open strConn
sql = "SELECT * FROM Tabella WHERE ID=valore"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
 
io ce l'ho ma sono al tirocinio e non posso installarlo...
oggi pomeriggio non ci sono!!! cmq grazie a tutti e 2!!! :fonzie:
 

Discussioni simili