Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    Request form e nuovo inserimento

    Buongiorno, ho una tabella di utenti con valori:
    es.
    nome, cognome , codicepromo, scadenza. Ed ho la necessità di cambiare scadenza per rigenerare il coupon, quindi una volta cliccato su un valore mi apre un'altra pagina con gli stessi dati, come se fosse una nuova registrazione.

    Dovrei cambiare il codicepromo (che viene generato random) e ci riesco.

    L'unica cosa che non riesco a fare è cambiare la scadenza, riesco solo ad affiancarla,ho 2 valori, nel senso che se nella tabella scadenza c'è 2/2/2013 quando vado a rigenerarla ho 2/2/2013,3/2/2013. Quindi il valore originale non viene sovrascritto come in codicepromo.

    Ecco il codice, secondo voi come ne posso venire a capo?
    [code] <%
    code=Request.Form("code")
    if code="" then response.end
    set conn=Server.CreateObject("ADODB.Connection")
    conn.provider="Microsoft.Jet.OLEDB.4.0"
    conn.open(server.mappath("utenti.mdb"))
    set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open "Select * from promo where promo.
    codice:
    =" & code , conn
    %>
    <html>
    <head></head><script language="javascript" type="text/javascript">
    function randomString() {
    	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
    	var string_length = 8;
    	var randomstring = '';
    	for (var i=0; i<string_length; i++) {
    		var rnum = Math.floor(Math.random() * chars.length);
    		randomstring += chars.substring(rnum,rnum+1);
    	}
    	document.randform.codice.value = randomstring;
    }
    
    </script>
    <%
      sNewDate=""
      sDate = Now()
      sNewDate = DateAdd("d", 6, sDate)
      sMonthNext = Monthname(Month(sNewDate))
    %>
    <body>
    <%
    for each x in rs.Fields
         	if x.name <> "code" and x.name <> "dateadded" then
    	%>    
    <form method="POST" name="randform" action="reg.asp">
    <input name="code" type="hidden" value="<%=code%>">
    <table bgcolor="#b0c4de">
    
              	 <tr>
              	 <td><%=x.name%> </td>
                 <td><input name="<%=x.name%>" value="<%=x.value%>" size="20">  </td></tr>     
                     
    <%end if
    next
    rs.close
    conn.close
    %>
    <input id="scadenza" name="scadenza" type="text" value="<%=sNewDate%>"placeholder="<%=sNewDate%>" />
    
    <tr><td><input type="submit" value="INVIA" onClick="randomString();"/></td></tr>
    
    </form>
    
    </table>

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,802

    Re: Request form e nuovo inserimento

    Originariamente inviato da GI89
    L'unica cosa che non riesco a fare è cambiare la scadenza, riesco solo ad affiancarla,ho 2 valori, nel senso che se nella tabella scadenza c'è 2/2/2013 quando vado a rigenerarla ho 2/2/2013,3/2/2013.
    direi che passi due volte il valore.
    controlla bene cosa scrivi nell'html:
    sicuramente hai due input name="scadenza"

  3. #3

    Re: Re: Request form e nuovo inserimento

    Originariamente inviato da Vincent.Zeno
    direi che passi due volte il valore.
    controlla bene cosa scrivi nell'html:
    sicuramente hai due input name="scadenza"
    Ciao Vincent infatti è così, ho dimenticato di dire che la data si deve aggiornare in automatico come succede nel campo codice (visto che il valore viene cambiato al submit).

    Ecco magari la soluzione sta proprio qui, usare la stessa funzione di codice in scadenza, solo che non saprei come convertire questo:
    codice:
    <%
      sNewDate=""
      sDate = Now()
      sNewDate = DateAdd("d", 6, sDate)
      sMonthNext = Monthname(Month(sNewDate))
    %>
    in funzione

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,802
    no, la soluzione è NON passare due volte lo stesse valore
    quindi diversificarli (per esempio con name="NuovaScadenza") e fare l'update con questo

    edit,
    oppure, dal ciclo, non stampare scadenza come input

  5. #5
    E' quello che voglio fare fin dall'inizio, ma ho bisogno che il campo scadenza sia sovrascritto con quello nuovo.

    Modificandolo a mano funzionerebbe, ma in automatico?

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,802
    non capisco perché " for each x in rs.Fields stampi un form "
    (mi sembra tutto un po' confuso o sbaglio?)

    comunque potresti:
    codice:
    if x.name = "scadenza" Then
    response.write x.value
    else
    response.write "<input name="""&x.name&""" value="""&x.value&""" size=""20"">"
    end if
    così eviti di avere due input scadenza

  7. #7
    Così mi dà i campi vuoti, comunque sia anche cambiando qualcosa non riesco a fare il replace del campo scadenza con la nuova data

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,802
    "così" come? fai vedere cosa hai scritto

  9. #9
    mostra il codice della pagina reg.asp

  10. #10
    Allora il codice era giusto, le tabelle nel database erano sbagliate, in ogni caso cambiando qualche riga l'ho riutilizzato per fare l'update in questo modo:

    prima pagina:
    [code] <%
    code=Request.Form("code")
    if code="" then response.end
    set conn=Server.CreateObject("ADODB.Connection")
    conn.provider="Microsoft.Jet.OLEDB.4.0"
    conn.open(server.mappath("utenti.mdb"))
    set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open "Select code,utilizzato from promo where promo.
    codice:
    =" & code , conn
    %>
    
    <form method="post" action="secondapagina.asp" target="_blank" value="Submit"/>
    <input type="hidden" value="<%=code%>">
    <table align="center">
    <%
    for each x in rs.Fields
         	if x.name <> "code" and x.name <> "dateadded" then%>
              	 <tr>
              	 <td><font size="3"><%=x.name%> </font></td>
              	 <td><input name="utilizzato" value="Si" size="20"readonly  /></td>
    <%end if
    next
    rs.close
    conn.close
    %>
    </tr>
    </table>
    
    
    <input type="submit" name="action" value="invio" >
    </form>
    seconda pagina
    codice:
    <%
    set conn=Server.CreateObject("ADODB.Connection") 
    conn.provider="Microsoft.Jet.OLEDB.4.0"
    conn.open(server.mappath("utenti.mdb"))
    
    if Request.form("action")="invio" then
         	code=Request.Form("code")
         	        sql="UPDATE promo SET utilizzato='" & Request.Form("utilizzato")&"' WHERE code='"& code & "' "
    
    	conn.Execute sql, Recordsaffected
    	if err <> 0 then
    	 Response.Write(" non può essere aggiornato")
    	else	
    	 Response.Write(" & code & " &egrave; stato aggiornato")
    	end if	
    end if
    conn.close%>
    Mi da errore :
    Data type mismatch in criteria expression.

    /tupeppelista/c.asp, line 15

    Se cambio gli apici in WHERE code=" &code& "'" mi da sempre un errore:
    Syntax error in string in query expression 'code=''.

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.