Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395

    mdificare da una Casella Di Riepilogo un record

    Ciao a tutti,
    ho una casella di riepilogo in un form che mi deve permettere di modificare lo stato di un messaggio (se e' stato letto, fatto ecc.) presente su una tabella di un database access.
    La tabella si chiama "MessageBoard", l'id si chiama "IdMessageBoard", e il campo che si deve modificare si chiama "Status" ....
    Quale e' il mio problema: Non riesco a far passare l'IdMessageBoard del Messaggio in modo che venga modificato il record selezionato infatti lui scrive sulla tabella nel campo status cioe' che seleziono ma non me lo scrive al record giusto bensi' al primo della lista.. Ecco il codice di tutta la pagina, con evidenziato le parti della form:




    <html>
    <head>
    <%
    sql= "SELECT * FROM MessageBoard where [To]="&Idreq&"; "
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,1,3
    %>

    <style type="text/css">
    <!--
    .style7 {
    font-size: 9px;
    font-family: Arial, Helvetica, sans-serif;
    }
    .style8 {font-size: 8px}
    -->
    </style>
    </head>

    <body>

    <div id="Layer4" style="position:absolute; left:75px; top:18px; width:40px; height:18px; z-index:4; font-size: 9px; font-family: Arial, Helvetica, sans-serif;">


    new message </p>
    </div>
    <div id="Layer5" style="position:absolute; left:361px; top:21px; width:268px; height:12px; z-index:5; font-family: Arial, Helvetica, sans-serif; font-size: 18px;">Inbox</div>
    <div id="Layer2" style="position:absolute; left:133px; top:21px; width:22px; height:21px; z-index:6">[img]images/SentMessage.gif[/img]</div>
    <div id="Layer6" style="position:absolute; left:164px; top:20px; width:37px; height:20px; z-index:7; font-size: 9px; font-family: Arial, Helvetica, sans-serif;">Sent Message </div>

    <div id="Layer1" style="position:absolute; left:43px; top:20px; width:26px; height:20px; z-index:1">[img]images/button_addevent.gif[/img]</div>

    <div id="Layer3" style="position:absolute; left:267px; top:21px; width:21px; height:20px; z-index:3">[img]aspWebCalendar_4_5_2/calendar/images/button_refresh.gif[/img]</div>
    <form action="ControlStatus.asp" method="post">
    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>">
    <table width="100%" cellpadding="0" cellspacing="0" style="border: Solid 1px #000000;">

    <tr bgcolor="#CCCCCC" border="1">
    <td width="13" height="30" valign="top"></td>
    <td width="92" valign="top"></td>
    <td width="7" valign="top"></td>
    <td width="68" valign="top"></td>
    <td width="12" valign="top"></td>
    <td width="63" valign="top"></td>
    <td width="9" valign="top"></td>
    <td width="23" valign="top"></td>
    <td width="8" valign="top"></td>
    <td width="101" valign="top"></td>
    <td width="9" valign="top"></td>
    <td width="361" valign="top"></td>
    </tr>
    <tr class="style8">
    <td height="21"></td>
    <td valign="middle" class="style7">Status</td>
    <td></td>
    <td align="left" valign="middle"><span class="style7">Date</span> <span class="style7">[img]images/ordinamento.gif[/img]</span></td>
    <td></td>
    <td align="left" valign="middle"><span class="style7">From</span></td>
    <td></td>
    <td align="left" valign="middle" class="style8"><span class="style7">Type</span></td>
    <td></td>
    <td align="left" valign="middle"><span class="style7">Title</span></td>
    <td></td>
    <td align="left" valign="middle"><span class="style7">Descrption</span></td>

    </tr>
    <%
    do while not(rs.eof)
    if intVolta="1" then
    intVolta="0"
    intTesto="#00FF99"
    intSfondo="#FFFFFF"
    else
    intVolta="1"
    intTesto="#FFFF99"
    intSfondo="#EEEEEE"
    end if
    %>
    <tr bgcolor="<%=intSfondo%>" class="style8">
    <td height="20"></td>
    <td valign="middle">
    <% response.write rs.fields("IdMessageBoard") %>
    <select name="Status" class="inputbox" size="1">
    <option SELECTED></option>
    <option value="Read" <%If RS("Status") = "Read" Then%>SELECTED<%End If%>>Read</option>
    <option value="On Hold" <%If RS("Status") = "On Hold" Then%>SELECTED<%End If%>>On Hold</option>
    <option value="Done" <%If RS("Status") = "Done" Then%>SELECTED<%End If%>>Done</option>
    </select>

    <input name="Submit" type="image" src="images/skin/icon024.gif" width="16" height="16" border="0" alt="edit your status" title="go">
    %>




    </td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(2)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%'estrainome(3)%><%=rs(1)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(3)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(5)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(6)%></span></td>
    </tr>
    <tr>
    <td height="0"></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <%
    rs.movenext
    loop
    rs.Close
    set rs = Nothing

    %>
    </table>
    </form>
    </body>
    </html>


    L'IdMesssageBoard con il response.write viene scritto correttamente, ma sembra che non sia passato al recordset.

    Il file che fa il controllo e' il seguente ControlStatus.asp:



    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <%
    dim reqidMessage
    'reqidMessage=request.querystring("IdMessageBoard" )
    reqidMessage=request.form("IdMessage")
    'response.write (reqidMessage)
    'response.end
    'if reqidMessage="" then reqidMessage=0

    sql = "SELECT * FROM MessageBoard where IdMessageBoard="&reqidMessage&";"
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open "MessageBoard", Conn, 2, 2
    'RS.Find "IDMessage='" & request("IdMessageBoard") & "'"
    Rs("Status") = request("Status")

    RS.update

    RS.close
    set RS = nothing

    %>

    <body onLoad="window.alert('Status send')">

    </body>
    </html>


    Che ne dite? Sono sempre io ad avere problemi con l'Id!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Hei che ne dite? Qualcuno ha qualche idea, please help me!!!!!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395

    mi spiego meglio....

    Ragazzi, visto che nessuno mi ha risposto,forse non sono stato chiaro....
    Ci riprovo:
    Ogni record nei messaggi ricevuti Ha un menu a tendina con tre opzioni (read, on hold, done), mi serve per far capire al mittente del messaggio in che stato e' il messaggio stesso, quindi cosa faccio:
    Nel file della posta arrivata metto un menu a tendina ecco il codice:

    Tutto quello che e' scritto in indago e' un commento
    <form action="ControlStatus.asp?IdMessageBoard=<%=rs(0)% >" method="post"> la form che mi manda il messaggio al file ControlStatus.asp, che ha il compito di modificare il campo nel database in base alla selezione che ho fatto nel menu' a tendina
    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>"> campo nascosto per passare anche l'id del messaggio, nel database il campo id si chiama "IDMessageBoard"
    <select name="Status" class="inputbox" size="1">
    ecco la select chiamata "Status"
    <option SELECTED></option>
    <option>Read</option>
    <option>On Hold</option>
    <option>Done</option>
    </select>

    <input name="Submit" type="image" src="images/skin/icon024.gif" width="16" height="16" border="0" alt="edit your status" title="go"> il submit della form

    il resto sono i campi letti per singolo record....

    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(2)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%'estrainome(3)%><%=rs(1)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(3)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(5)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(6)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7">[img]images/skin/icon024.gif[/img]</span></td>
    </tr>
    <tr>
    </Form>

    File ControlStatus.asp:

    dim prova
    ' prova = ("2650318")
    prova = request.querystring("IdMessage")
    creo la variabile "Prova"che mi serve per riprendere IdMessage dal file precedente
    sql="SELECT * FROM MessageBoard" _ & " WHERE (((MessageBoard.IdMessageBoard)="&prova&"));" _la query sql prende i dati dalla tabella MessageBoard dove l'IdMessageBoard e' = alla variabile "prova" cioe' all' " IdMessage" preso dall'altro file
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open "MessageBoard", Conn, 2, 2
    ' RS.Find "IDMessage='" & request("IdMessageBoard") & "'" altre prove fatte e commentate
    ' Rs("IdMessageBoard") = request("IdMessage")
    Rs("Status") = request.form("Status") prende il campo status nella tabella MessageBoard e lo pone uguale al campo status del menu' a tendina

    RS.update aggiorna i dati

    RS.close
    set RS = nothing

    %>
    <body onLoad="window.alert('Status send')">
    </body>

    quale e' il mio problema???
    Il problema e' che quando il dato viene inserito nel database nella tabella MessageBoard, non viene inserito nel record giusto bensi' nel primo che trova. Ho provato a forzarlo della serie ho posto (come vedi dal commento) la variabile "prova" = ad un IdMessageBoard che ho nella tabella...
    Se faccio una query di questo tipo in access bene lo prende se lo faccio dall'asp (con la stessa query) NIENTE, va sempre e solo al primo!!!

    Che ne dite? Vi prego un aiuto perche' non ne so venire fuori!
    Grazie e ciao

  4. #4
    1a cosa:

    usa sintassi identiche:

    codice:
    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>"> 
    
    <% response.write RS("IDMessageBoard"%>
    2a cosa:

    fai questo nella pagina di recupero id e stampa la query (in grassetto):

    codice:
    <% 
    dim idMessage 
    idMessage = trim(request.form("IdMessageBoard"))
    
    if idMessage = "" then 
       idMessage = 0 
    end if
    
    sql = "SELECT * FROM MessageBoard where IdMessageBoard = " & idMessage & ";" 
    
    response.write (sql) 
    response.end   
    
    Set RS = Server.CreateObject("ADODB.Recordset") 
    RS.Open "MessageBoard", Conn
    
    Rs("Status") = request("Status") 
    
    RS.update 
    
    RS.close 
    set RS = nothing 
    %>
    3a cosa:

    non ha senso questo controllo

    codice:
    if idMessage = "" then 
       idMessage = 0 
    end if
    a meno che la query per idMessage = 0 non tiri fuori qualcosa dalla tabella, ma ne dubito!
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Ciao Maximum,
    ho provato cio' che mi hai postato
    se metto un response.write response.end dopo la query
    mi rende la query con l'idmessageboard=0.
    Se levo l'if mi prende l'idmessageboard="" a niente, quindi l'id message board non gli arriva come faccio a farglielo arrivare?

    HELP ME PLEASE!

  6. #6
    Per idMessage = 0 trovi dei record in tabella?
    Non credo...

    Quindi quel controllo va tolto.

    Ma se fai:

    codice:
    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>"> 
    <% response.write RS("IDMessageBoard"%>
    te lo stampa?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Non ci sono id= 0
    ho tolto l'if
    ho provato e non cambia niente...

  8. #8
    Hai fatto quanto ti ho scritto prima?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    si ecco il codice...

    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>">
    <% response.write RS("IDMessageBoard")%>
    <select name="Status" class="inputbox" size="1">
    <option SELECTED></option>
    <option>Read</option>
    <option>On Hold</option>
    <option>Done</option>
    </select>

    ed ecco la pagina che lo richiama

    dim idMessage
    idMessage = trim(request.form("IdMessageBoard"))

    'if idMessage = "" then
    ' idMessage = 0
    'end if

    sql = "SELECT * FROM MessageBoard where IdMessageBoard = " & idMessage & ";"

    response.write (sql)
    response.end
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open "MessageBoard", Conn, 2, 2
    Rs("Status") = request.form("Status")

    RS.update

    RS.close
    set RS = nothing

    mi stampa questo:

    SELECT * FROM MessageBoard where IdMessageBoard = ;

  10. #10
    Non mi riferisco a questa pagina, bensì a quella contenente la form.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

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.