6 messaggi dal 06 gennaio 2002
Salve a tutti, sono una novellina, quindi niente risate!
Devo fare una pagina di aggiornamento via web di un database in cui sono inserite le date ecc dei concerti di un gruppo.
Non ho avuto problemi per l'inserimento di un nuovo record, ma ne ho per la modifica.
Dunque: per poter sia cancellare che aggiornare i record, ho creato una pagina admin.asp in cui vengono visualizzati tutti i record con accanto le due opzioni "cancella" e "modifica" che portano alle 2 pagine di dettaglio del record prescelto, cancella.asp e modifica.asp.
Non posso utilizzare l'opzione master/detail page dell'ultradev perchè la connessione è DSNless, e anche provandoci non mi riesce.

Ditemi per favore come si fa ad andare ad un determinato record per poterlo modificare!!!
Come chiave primaria ho inserito la data, ma non riesco a far passare i parametri!!!
La tabella di visualizzazione di tutti i record va inserita all'interno di un form? Ma come si fa se in un form non possono essere date 2 action?
HELP ME PLEASE!
Grazie.
Ba

Ba

Ba
2.907 messaggi dal 15 maggio 2001
Contributi
Ciao longhiba......

Non è vero che non posso avere due action ;O)

Addirittura ne posso avere a bizzeffe solo che occorre utilizzare uno script lato client come per esempio un javascript.
Cosa volevi dire con questa frase ??

Consiglio : Visto che sei una programmatrice junior ti consiglio di non utilizzare programmi come Ultradev oppure FrontPage etc... perchè quest ultimi ti creano loro il codice e alla fine se vuoi apportare delle modifiche non ci capisci più nulla........

Il miglior modo per imprarare è scrivere direttamente il codice con l'utilizzo di un editor o per esempio con il Blocco note.... è più palloso ma è il migliore !!!

CMQ per il tuo problema tu vuoi modificare un record ??

Devi utilizzare un'istruzione SQL chiamata "UPDATE"

esempio

sql="UPDATE tabella Set cognome='rossi' Where nome='Paolo'"

Rome Webmaster

6 messaggi dal 06 gennaio 2002
Ciao Rome.

Per quel che riguarda il codice, me lo sto studiando, Ultradev lo uso di appoggio per capire certe cose e per farmene fare altre...

Il mio problema non è l'update, ma avere la possibilità di dare 2 azioni (modifica record e cancella record) ad uno stesso record scelto all'interno di una lista.
la struttura è tipo:
-concerto1 data luogo ecc modifica cancella
-concerto2 data luogo ecc modifica cancella
-concerto3 data luogo ecc modifica cancella

Sapevo che non si potevano dare due actions diverse all'interno dello stesso form e quindi creavo due pagine di dettaglio del singolo record da cui cancellarlo o modificarlo. Il problema è che se io clicco, che so, sul link "modifica" del terzo record, mi viene visualizzato invece il primo!
Che fare?

Ba

Ba
2.907 messaggi dal 15 maggio 2001
Contributi
Semplicemente puoi usare una variabile da associare al link

Crei un'unica pagina che farà sia la cancellazione sia la modifica.Esempio

<a href="pagina.asp?azione=modifica">Modifica</a>
<a href="pagina.asp?azione=cancella">Cancella</a>

Nella pagina chiamata da me "pagina.asp" metti un controllo del tipo

<%

if Request.QueryString("azione")="" Or Request.QueryString("azione")<>"modifica" Or Request.QueryString("azione")="cancella" then

Response.write "Mi dispiace ma non si può accedere a questa pagina"
Response.write "<a href=""javascript:history.back()"">Torna indietro</a>"
Response.End
end if


if Request.QueryString("azione")="modifica" then

'QUI OPERAZIONE DI MODICA

end if

if Request.QueryString("azione")="cancella" then

'QUI OPERAZIONE DI CANCELLAZIONE

end if


%>



Rome Webmaster


6 messaggi dal 06 gennaio 2002
BELLA STORIA!...
Ma non mi hai risolto il problema di andare al record specifico!
E poi, lo script di cancellazione o di modifica, lo scrivo tra if e end if di ognuna delle opzioni?
Scusa, forse sono un po' stupida io o forse dovrei studiarmi meglio il manuale...
Nel frattempo grazie.
Ba.

Ba

Ba
2.907 messaggi dal 15 maggio 2001
Contributi
<b>longhiba ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote><hr height=1 noshade id=quote>
BELLA STORIA!...
Ma non mi hai risolto il problema di andare al record specifico!
E poi, lo script di cancellazione o di modifica, lo scrivo tra if e end if di ognuna delle opzioni?
Scusa, forse sono un po' stupida io o forse dovrei studiarmi meglio il manuale...
Nel frattempo grazie.
Ba.

Ba
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>

Per specificare il record specifico devi estrarre i dati dal database e associarli ai link

esempio

&lt;a href="pagina.asp?azione=modifica&numero=&lt;%=rs("ID")%&gt;"&gt;Modifica&lt;/a&gt;
&lt;a href="pagina.asp?azione=cancella&numero=&lt;%=rs("ID")%&gt;"&gt;Cancella&lt;/a&gt;

poi qui metti :

&lt;%

if Request.QueryString("azione")="" Or Request.QueryString("azione")&lt;&gt;"modifica" Or Request.QueryString("azione")="cancella" then

Response.write "Mi dispiace ma non si può accedere a questa pagina"
Response.write "&lt;a href=""javascript:history.back()""&gt;Torna indietro&lt;/a&gt;"
Response.End
end if

'controlliamo anche il valore id che è meglio

numero=Request.QueryString("numero")

if IsNumeric(numero)=false then
Response.write "Attenzione c'è un errore"
Response.write "&lt;br&gt;I valori non rientrano nei criteri"
Response.End
end if

'per prima cosa ti conviene vedere se realmente esiste il record


if Request.QueryString("azione")="modifica" then

Set connessione = Server.CreateObject("ADODB.Connection")
connessione.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("nome_database.mdb") ,1,3

set controllo=connessione.Execute("Select*from nome_tabella Where id="&numero&"")

if controllo.Eof then

Response.write "Il record non esiste"
Response.end
else

<b>'esempio</b>

sql="UPDATE nome_tabella Set campo='valore' Where Id="&numero&""

set inserisci=connessione.Execute(sql)

Set controllo=nothing
Set inserisci=Nothing

connessione.Close

Set connessione=Nothing


end if
end if

if Request.QueryString("azione")="cancella" then

Set connessione = Server.CreateObject("ADODB.Connection")
connessione.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("nome_database.mdb") ,1,3

set controllo=connessione.Execute("Select*from nome_tabella Where id="&numero&"")

if controllo.Eof then

Response.write "Il record non esiste"
Response.end
else

<b>'esempio</b>

sql="Delete From nome_tabella where id="&numero&""

set cancella=connessione.Execute(sql)

Set cancella=Nothing

set controllo=Nothing

connessione.Close

Set connessione=nothing

end if
end if


%&gt;

Rome Webmaster




6 messaggi dal 06 gennaio 2002
GRAZIE!
...e tutto è OK per quel che riguarda il CANCELLA.
Ma per il MODIFICA io devo dare la possibilità all'utente di cambiare i valori (che so, viene spostata solo la data di un concerto):
io devo permettere all'utente di vedere i dati e di correggerli.

Io gli ho detto, nella pagina di modifica:

Select*from Tabella where ID="&numero&"

a questo punto dovrei dirgli di inserire i dati raccolti in una tabella con tesyo di input, da dove posso modificarli e inviarli all'effettiva modifica.
Con lo script che mi hai dato non succedeva nulla (anche perchè non era possibile modificare i dati).
Io ho tentato in tutte le maniere, ma penso di essere giunta solo ad uno stato di fusione un po' elevato!
Continua a dirmi che manca l'oggetto e non mi compila la tabella.
Ti ringrazio in anticipo se mi salvi anche qui!
Ba

Ba

Ba
2.907 messaggi dal 15 maggio 2001
Contributi
Allora fai così :

inceve di mettere questo

else

<b>'esempio</b>

sql="UPDATE nome_tabella Set campo='valore' Where Id="&numero&""

set inserisci=connessione.Execute(sql)

metti così :

else

%&gt;
&lt;form action="modifica_definitiva.asp" method="post"&gt;
&lt;input type="text" name="nome" value="&lt;%=controllo("nome")%&gt;"&gt;&lt;br&gt;
&lt;input type="text" name="date" value="&lt;%=controllo("date")%&gt;"&gt;&lt;br&gt;
&lt;input type="submit" value="Modifica i campi"&gt;

&lt;%
Set controllo=nothing
Set inserisci=Nothing

connessione.Close

Set connessione=Nothing


end if
end if
%&gt;

Al posto di &lt;%=controllo("nome")%&gt; etc... dovrai indicare il nome esatto del campo del tuo database.
Per esempio se hai la necessità di modificare il campo "titolo" dovrai scrivere :

&lt;input type="text" name="titolo" value="&lt;%=controllo("titolo")%&gt;"&gt;


Dopo di che creati la pagina da me chiamata per esempio "modifica_definitiva.asp" nella quale eseguirai la modifica vera e propria utilizzando la query che ti ho consigliato prima. Ovviamente in base a quanti e a quali campi vuoi modificare devi adattare la tua query Sql

Spero di esserti stato utile

Rome Webmaster






Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.