e cosa esce a video?
e cosa esce a video?
esce la tabella:
però invece di tabellare tutti i dati uno ogni cella, per ogni colonna inserisce i risultati alternati da una virgola, cioè dove c'è <%=request.form("foto")%> al risultato esce: franco.jpg, carlo.jpg, non li divide a cella.
Allora:
tu hai una form unica, nella quale sono presenti diverse "input" che hanno lo stesso nome. A questo punto, quando richiami con request.form il nome di una input, ti restituisce un array che contiene i diversi valori che ha trovato nelle varie input con lo stesso nome.
A questo punto devi semplicemente splittare l'array e creare la tabella:
quindi tu hai ad esempio le input chiamate "foto", "formato", "supporto", "quantita"...e fai
foto=split(request.form("foto"), ", ") ' qui controllami se la separazione avviene con ", " (virgola spazio)...o se avviene solo con virgola, nel caso sostituisci con ","...ma mi sembra sia virgola-spazio
e splitti anche le altre request:
formato=split(request.form("formato"), ", ")
supporto=split(request.form("supporto"), ", ")
quantita=split(request.form("quantita"), ", ")
a questo punto di fai un ciclo del tipo:
e così dovresti avere la tua tabellaCodice PHP:
<table>
<%for a=0 to Ubound(foto)%>
<tr>
<td><%=foto(a)%></td>
<td><%=formato(a)%></td>
<td><%=supporto(a)%></td>
<td><%=quantita(a)%></td>
</tr>
<%next%>
</table>
Se poi vuoi fare la paginazione, devi aggiungere un contatore, e metti il controllo nel ciclo for, che in sostanza anziché estrarre tutti i valori, estrae ad esempio solo dal quinto al decimo...poi dal decimo al quindicesimo...ecc...
quindi ipotizzando che tu ti sia creato sotto i numeri che portano alle diverse pagine, cosa che fai ottenendo il numero massimo di valori e poi con operazioni matematiche crei la numerazione delle pagine....i numeri sotto manderanno via querystring il numero dal quale partire e quindi il ciclo for partirà dalla querystring e finirà dopo il numero di valori che tu hai impostato di visualizzare in ogni pagina...qualcosa tipo:
for a=Cint(request.querystring("pagina")) to Cint(request.querystring("pagina"))+5 (ad esempio per visualizzare 5 valori...)
ecc....
Fai delle prove poi dimmi...
Ciao
Perfetto!! Grande come sempre ale.
Ora ti chiedo, e se questa pagina con tutti i risultati stampati a video la faccia diventare stampabile e in pdf?
Ti chiedo troppo?
Grazie 1000 ale.
G.
Ma non è mai troppo....tranquillo!
Allora, se sei su Aruba(non ricordo bene), c'è Persits, che oltre a fare l'upload con una fantastica libreria....fa anche un sacco di cosette per creare i PDF...
La libreria in questione si chiama "ASPPDFLib.dll"...puoi scaricarla dal mio blog...qui: download persits aruba
Metti la .dll nella cgi-bin...e poi con queste righe ti crei il tuo pdf al volo...
ed il gioco è fatto!(cmq prova...che non si sa mai...)Codice PHP:
<%
Set Pdf = Server.CreateObject("Persits.Pdf")
' creo documento vuoto
Set Doc = Pdf.CreateDocument
' Imposto le prorietà del documento
Doc.Title = "Questo il titolo del documento pdf"
Doc.Creator = "Metti il tuo nome..."
' Aggiungo nuova pagina su cui scrivere
Set Page = Doc.Pages.Add
' Imposto il font da utilizzare
'Set Font = Doc.Fonts("Helvetica")
Set Font = Doc.Fonts("Courier")
' Posizionamento
Params = "x=0; y=650; width=612; alignment=center; size=50"
' Scrivo il testo...qui metterai la tua tabella...
Page.Canvas.DrawText "Prova di base", Params, Font
percorso = Server.MapPath("/public") & "/base.pdf"
'Filename = Doc.Save( "D:\INETPUB\webs\nomedominiocom\public\base.pdf", False )
Filename = Doc.Save( percorso, False )
Response.Write "Scarica o apri il tuo pdf <A HREF=/public/" & Filename & ">qui</A>"
%>
Grazie 1000
ma perdona la mia ignoranza, ma lo script che mi hai postato dove lo devo mettere, al momento della creazione oppure una volta che ho la pagina con tutti i risultati allora con un tasto creo il pdf(cosa che mi sarebbe + congeniale)
Grazie
G.
Allora:
la riga chiave è:
Page.Canvas.DrawText "Prova di base", Params, Font
perché è dove incolli il tuo testo.
Per il lavoro che devi fare tu potresti fare una cosa del genere:
Crea, ad esempio, dopo la tua tabella, una form che contenga al suo interno una input nascosta che contenga lo stesso html che hai generato per fare la tabella. (in sostanta il "value" della input riavrà il codice con il quale generi la tabella), in modo poi che dai la possibilità di accedere alla pagina che crea il pdf, inserendo come testo la request.form nascosta che contiene la tabella:
Page.Canvas.DrawText ""&request.form("tabella")&"", Params, Font
e quindi la pagina ti proporrà il link per scaricare e visualizzare il pdf.
subito dopo i risultati a video ho fatto così
La pagina la crea ma è bianca senza scrittecodice:<% ordine = "123456" Set Pdf = Server.CreateObject("Persits.Pdf") ' creo documento vuoto Set Doc = Pdf.CreateDocument ' Imposto le prorietà del documento Doc.Title = "ordine foto n°" & ordine & "" Doc.Creator = "PIPPO" ' Aggiungo nuova pagina su cui scrivere Set Page = Doc.Pages.Add ' Imposto il font da utilizzare 'Set Font = Doc.Fonts("Helvetica") Set Font = Doc.Fonts("Courier") ' Posizionamento Params = "x=0; y=650; width=612; alignment=center; size=50" %> <table border="1" width="515" id="table1" bordercolor="#FFFFFF" bordercolorlight="#C0C0C0"> <tr> <table border="1" width="515" id="table1" bordercolor="#FFFFFF" bordercolorlight="#C0C0C0"> </font>[/b] <tr><%for a=0 to Ubound(foto)%> <td bgcolor="#FFFFFF" width="225"><font size="2" face="Verdana"> <input type="hidden" name="foto" ="31" value="<%=foto(a)%>"></font></td> <td bgcolor="#FFFFFF" width="75"> <p align="center"><input type="hidden" name="formato" ="31" value="<%=formato(a)%>"></td> <td bgcolor="#FFFFFF" width="101"> <p align="center"><input type="hidden" name="supporto" ="31" value="<%=supporto(a)%>"></td> <td bgcolor="#FFFFFF" width="64"><input type="hidden" name="quantita" ="31" value="<%=quantita(a)%>"></td> </tr><%next%> </table> <% percorso = Server.MapPath("/public/server/" & request.querystring("cartella") & "") & "/" & ordine & ".pdf" Filename = Doc.Save( percorso, False ) Response.Write "Scarica o apri il tuo pdf <A HREF=/public/server/" & request.querystring("cartella") & "/" & Filename & ">qui</A>" %>
Eh..no...così non può andare...
La riga chiave è
Page.Canvas.DrawText "testo del pdf", Params, Font
devi mettere il testo qui!
ma qui che solo il testo vorrei che ci sia una tabella "stampata" sul pdf con tutti i dati.