Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91

    Stampa xls con solo alcuni elementi

    Salve a tutti,
    sono di nuovo qui a chiedere il vostro aiuto.

    Spiego il mio problema:
    io ho una lista di richieste di pagamento (una pagina con un elenco di righe) con al fianco di ogni riga un bottone modifica (preleva l'ID di quella richiesta e apre una nuova pagina di modifica dati).

    Ora io devo presentare una stampa (download di file .xls)di alcune di queste richieste di pagamento (a discrezione dell'utente).
    Il mio dubbio riguarda il metodo da utilizzare per identificare le righe da stampare.

    Avevo pensato di inserire una combobox al fianco di ogni riga e quando premevano sul bottone "stampa" sarei andato a stampare solo quelle selezionate: qui sta il mio problema
    Io devo prelevare anche degli altri dati (non in elenco) dal DB e quindi mi chiedevo come poter ottenere la lista degli ID delle richieste selezionate attraverso la combobox.

    Probabilmente mi sto perdendo in un bicchiere d'acqua, quindi mi scuso se la domanda vi risulterà banale ma al momento non mi viene in mente nulla.

    Spero in un vostro aiuto e sono disponibilililisssssiisssssimo a dare altre spiegazioni o chiarimenti
    Il problema non è la caduta, ma l'atterraggio (Cit.)

  2. #2
    Se ho capito cosa ti serve (ma non ne sono sicuro).....
    Il pulsante di stampa , deve puntare ad un nuovo script che reinterroga il DB in base alle richieste dell'utente nella prima pagina.
    Dovrai prevedere una sorta di form con delle checkbox o simili per indicare alla pagina di action quali elementi dinamici aggiungere alla query.

    Per intenderci.
    Su pagina 1 presenti una lista di risultati (parziali) di una query.
    Metti che vuoi stampare solo alcuni record.
    In fondo ad ogni rigo, metti un checkbox che indica di quali record vuoi la stampa dei dettagli.
    Il pulsante stampa, che chiuderà la form in questione, invierà ad un nuovo file PHP.
    Questo secondo file, leggerà di quali record si sta trattando e provvederà ad interrogare nuovamente il DB per farti restituire tutte le informazioni relative agli ID di record che hai passato.
    Una volta composta la query, la manderai in esecuzione e farai in modo che i risultati vengano formattati e restituiti sotto forma di file excel.

    Stesso discorso se vuoi filtrare i campi di ricerca.
    Metterai la spunta sui nomi delle colonne che l'utente vorrà che vengano visualizzate.
    Il secondo script riceverà i valori passati e comporrà la query in base a quelli.

    Spero di non avere cannato nella lettura della tua domanda.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91
    Ciao alcio74,
    hai capito perfettamente quello che mi serve fare...

    Avevo pensato anche io ad una soluzione simile:

    Avevo pensato di inserire l'id dell'elemento della lista come value della checkbox oppure in un campo nascosto agganciato alla combobox (anche se con una lista potenzialmente infinita mi rimane il dubbio di come identificare la relazione ceckbox-campo nascosto )

    Per quanto riguarda la creazione del xls ho trovato in rete (con commenti molto positivi) la libreria PHPExcel. Dato che devo semplicemente fare il download del file creato mi chiedevo se non esistesse un metodo piu semplice... qualche suggerimento?

    Intanto chiedo aiuto a Google per il file excel e cerco di far funzionare la scelta degli elementi.

    Il problema non è la caduta, ma l'atterraggio (Cit.)

  4. #4
    Se non hai grossi problemi di formattazione, ricordati che un file excel te lo puoi creare semplicemente anche come un file di testo con il segno di tabulazione per separare le celle (\t) e a-capo per separare le righe (\n\r).
    Crei le stringhe così formattate e le salvi in un file di testo con estensione .XLS (FOPEN(), FWRITE(), FCLOSE() sono le funzioni che userai).
    Per iniziare a lavorare sul risultato (prima di utilizzare plug-in più complicati), credo possa andare più che bene!
    La libreria PHPExcel, se non ricordo male, è una estensione di Pear, quindi devi avere Pear installato sul tuo PC di sviluppo, nonché sul server remoto in caso di ambiente di produzione!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91
    La formattazione è molto semplice:
    si tratta di 6 colonne con titolo fisso e variano le righe in base al numero di dati.
    Direi che mi conviene usare il buon vecchio metodo dei file (fopen()...ecc...)

    Stavo leggendo la documentazione relativa a PHPExcel e non ho trovato dei riferimenti a Pear, forse danno per scontato che sia attivo (cosa che impiegherei poco a fare sia sul server di test che quello di produzione).

    Intanto ti ringrazio per le indicazioni,

    ps: forse vado off-topic (mi perdonassero moderatori e webcosi tutti ) ma secondo voi è molto "rognoso" generare il file excel con jquery così da non dover ricaricare la pagina? mi spiego meglio: è fattibile farsi restituire da jquery un file completo?
    Il problema non è la caduta, ma l'atterraggio (Cit.)

  6. #6
    Dimenticavo che puoi usare pure FILE_PUT_CONTENTS(), ma poi alla fine, l'importante è scrivere nel file desiderato e nel formato previsto... con quale metodo è superfluo!

    Non ho mai usato jQuery per generare un file XLS, e mi sembra di capire che te lo useresti solo come interfaccia AJAX.... ma sostanzialmente tutto è fattibile.
    Il mio consiglio è: ragiona per step.
    Prima fai in modo che lo script raccolga le informazioni da te richieste e le trasformi in un file XLS, poi puoi abbellire lo script come meglio credi!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91
    Ho un problema ( )...

    Sono riuscito a creare la pagina che crea il file xls per il download e ho inserito la lista di valori dentro ad un form per inviarli alla suddetta pagina.

    Problema: al momento al fianco di tutte le righe della lista ho una checkbox che ha come "value" l'id corrispondente all'elemento della lista.
    Quando invio alla pagina che deve creare il file, però, mi ritrovo tutti gli id della lista.

    Come faccio ad inviare solo quelli selezionati dall'utente?

    Sono bloccato e spero in un vostro aiuto...
    Il problema non è la caduta, ma l'atterraggio (Cit.)

  8. #8
    Il checkbox viene gestito come un array.
    Ammettendo che sia del tipo:
    codice:
    <form action="script.php">
    <fieldset>
     <legend>Linguaggi conosciuti</legend>
    
     <input type="checkbox" name="nome_variabile" value=1 /> Valore 1
     
     
     <input type="checkbox" name="nome_variabile" value=2 /> Valore 2
     
    
     <input type="checkbox" name="nome_variabile" value=3 /> Valore 3
    </fieldset>
    </form>
    Nella pagina script.php troverai quanto segue:
    Codice PHP:
    $parametri $_POST['nome_variabile']; 
    Se mandi in echo $parametri, ti accorgerai che è un array, all'interno del quale troverai solamente i VALUE dei checkcbox selezionati.
    Puoi tranquillamente fare un implode, con virgola come separatore, dell'array ed otterrai una stringa di ID separati (appunto) da una virgola.

    Detta stringa la utilizzi nella query SQL del tipo:
    codice:
    SELECT * FROM table WHERE id IN ($stringa_id_separati_da_virgola)
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Dimenticavo di dirti che ho scritto qui direttamente senza provare il codice.
    Potrei avere fatto degli errori, ma l'importante è che hai capito come fare.
    In google trovi una marea di esempi in merito.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91
    Ciao alcio74 e grazie per continuare a darmi retta

    Avevo pensato/trovato una soluzione simile ma non avevo capito che l'array presentasse solo i valori delle chekbox selezionate... sono una frana

    Adesso faccio delle prove per vedere se riesco a estrapolare tutti i dati per tutte le righe selezionate con una sola query (come da tuo suggerimento), altrimenti userò un foreach (o come cavolo si scrive ) e farò la ricerca per ogni elemento dell'array...

    Provo a darmi da fare e vi tengo informati sui progressi

    Grazie ancora,
    Il problema non è la caduta, ma l'atterraggio (Cit.)

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.