Visualizzazione risultati 1 fino 16 di 16
Like Tree1Likes
  • 1 Post By GraphOGLRisorse

Discussione: Creazione dinamica buttoni

  1. #1
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito Creazione dinamica buttoni

    Salve a tutti,


    ero indeciso su dove postare questa discussione, sezione Javscript o Php?, ho optato per la seconda, se in caso e' errata allora chiedo cortesamente che venga spostata.

    quello che vorrei ottenere sono dei bottoni dinamici, che vengono creati solo se e' presente un dato nella lista , cioe' la variabile
    Codice PHP:
    <?php echo $anni;?>



    questo e' il codice html dei pulsanti, come vedete sono inseriti manualmente

    Codice:
    <div id="filters" class="btn-group" role="toolbar" data-toggle="buttons"
    					style="margin-left: 60px; margin-top: 20px; margin-bottom: 20px">
    					<label style="float:left; margin-right:10px;">Filter records:</label>
    
    					<label class="btn btn-primary active"><input type="radio" name="filterbox" id="chkAll" value="" selected>All</label>
    					<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk018" value="18">18</label>
    					<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk019" value="19">19</label>
    					<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk020" value="20">20</label>
    					<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk021" value="21">21</label>
                    	<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk022" value="22">22</label>
    					<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk023" value="23">23</label>
                    	<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk024" value="24">24</label>
                    	<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk025" value="25">25</label>
                    	.........
                    	</div>
    tabella in cui e' inserito codice php

    Codice:
    <table id="actoreta" class="table" >
    					CODICE PHP INSERITO
    					
    					</table>
    filtro abilitato sulla colonna 7 e sul campo
    Codice PHP:
    <?php echo $anni;?>
    codice javascript

    Codice:
    <script type="text/javascript">
            var arr = [];
            $('#filters input').change(function(){
                    if (this.checked) {
    					var table = $('#actoreta').DataTable();
                        table
    					
    					.column(7)
    					.search($(this).val(), false, false, false)
    					.draw();
    
                            
                    } else {
                        arr.splice(arr.indexOf(this.value),7);
                    }
    
                    }
    );
    
    
        </script>

    grazie
    Ultima modifica di blackskyisback : 29-08-2020 alle ore 22.28.29

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,141

    Predefinito

    Dovresti utilizzare un if, se quindi la condizione (quale?) con la variabile $anni è corretta, mostrare (ad esempio con una echo) il codice HTML che hai mostrato. Visto che i vari tasti sono identici e mi sembra cambi solamente l'id e il numero del value, ti consiglierei di stampare il tutto con un ciclo (for o while), così se vorrai modificare successivamente qualcosa, non dovrai farlo n volte.

    Hai già provato? Hai trovato difficoltà? Quali?

    Ciao!

  3. #3
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Ciao alemoppo,

    premetto che non sono un programmatore, solo passione, sto imparando da solo cercando di capire il linguaggio php,

    io avevo pensato nel codice html d'inserire la variabile
    Codice PHP:
    $anni
    come punto di partenza

    Codice HTML:
    <label class="btn btn-primary"><input type="radio" name="filterbox" id="chk018" value=" <?php echo $anni;?> "> <?php echo $anni;?> </label>
    per il resto non capisco come strutturarlo
    Ultima modifica di blackskyisback : 30-08-2020 alle ore 13.19.48

  4. #4
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,995

    Predefinito

    Salve,
    alemoppo intendeva un impostazione di questo tipo:
    Codice PHP:
    <?php
    if($anni!==null)
    {
    echo
    '<div id="filters" class="btn-group" role="toolbar" data-toggle="buttons" style="margin-left: 60px; margin-top: 20px; margin-bottom: 20px">
    <label style="float:left; margin-right:10px;">Filter records:</label>
    <label class="btn btn-primary active"><input type="radio" name="filterbox" id="chkAll" value="" selected>All</label>'
    ;
    for(
    $i=18;$i<76;$i++)
    {
    echo
    '<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk018" value="'.$i.'">'.$i.'</label>';
    }
    echo
    '</div>';
    }
    ?>
    Cordiali saluti.
    blackskyisback likes this.

  5. #5
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    Salve,

    [/php]

    Cordiali saluti.
    Grazie GraphOGLRisorse,

    il codice da te postato dovrebbe avere la posizione in alto perche' sotto c'e' table e poi viene eseguita la query,
    come passarlo sopra per leggere il php?
    Ultima modifica di blackskyisback : 30-08-2020 alle ore 14.29.26

  6. #6
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,995

    Predefinito

    Se intende visualizzarlo sopra la tabella, basta mettere il codice con i tag php prima della tabella.

    Era questo che intendeva?

    Cordiali saluti.

  7. #7
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    se lo inserisco prima della tabella il codice non viene eseguito perche il php si trova sotto della tabella

    ho provato a metterlo sotto vicino alla variabile $anni e non funziona, crea valori duplicati esendo dentro la tabella e cosa piu' importante tutti i pulsanti vengono creati, invece dal 70 al 75 la variabile $anni e' vuota

    se serve posso postare il codice completo sul mio cloud

  8. #8
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,995

    Predefinito

    Si, forse è d'aiuto vedere il codice intero.

    Se per lei non e un problema, può mandarlo tramite larea d'invio materiale, presente nella home del mio sito.
    http://graphoglrisorse.altervista.org

    Faccia lei come preferisce.

    Cordiali saluti.

  9. #9
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    Si, forse è d'aiuto vedere il codice intero.

    Se per lei non e un problema, può mandarlo tramite larea d'invio materiale, presente nella home del mio sito.
    http://graphoglrisorse.altervista.org

    Faccia lei come preferisce.

    Cordiali saluti.
    inviato, grazie ancora per il suo aiuto

  10. #10
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,995

    Predefinito

    Ho risolto il problema usando css con i flex-box.

    Questa è classe css per i flex-box:
    Codice:
    .FlexBox {
      display: flex;
      flex-wrap: wrap;
      align-content: center;
      //background-color: #CCCCCC;
      height: 400px;
    }
    .FlexBox > div {
      //background-color: #FF6600;
      color: #FFFFFF;
      width: 100px;
      margin: 10px;
      text-align: center;
      line-height: 75px;
      font-size: 30px;
    }
    Questa è la tabella riposizionata con con i css e applicazione del flex-box:
    Codice HTML:
    <table style="position:relative;top:80px;" id="actoreta" class="table FlexBox" >
    
    <!-- resto del suo codice (html + php) -->
    
    </table>
    Questa e l'area con i check, messa come codice sotto alla tabella, riposizionata con i css:
    Codice PHP:
    <?php
    if($anni!==null)
    {
    echo
    '<div id="filters" class="btn-group" role="toolbar" data-toggle="buttons" style="position:relative;top:-420px; margin-left: 60px; margin-top: 20px; margin-bottom: 20px">
    <label style="float:left; margin-right:10px;">Filter records:</label>
    <label class="btn btn-primary active"><input type="radio" name="filterbox" id="chkAll" value="" selected>All</label>'
    ;
    for(
    $i=18;$i<76;$i++)
    {
    echo
    '<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk018" value="'.$i.'">'.$i.'</label>';
    }
    echo
    '</div>';
    }
    ?>
    Se preferisce la versione modificata del suo file, me lo faccia sapere, che le metto il link qui sul forum o in un messaggio privato.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 30-08-2020 alle ore 18.33.09

  11. #11
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    GraphOGLRisorse Ciao,

    molto gentile ad avermi aiutato, si, se gentilmente mi manderebbe la versione modificata in PM,

    Grazie ancora

  12. #12
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Niente, non funziona

    la visualizzazione risulta sbagliata




    inoltre i bottoni che dovrebbero essere dinamici vengono invece creati tutti anche se la variabile $anni e' vuota



    Ultima modifica di blackskyisback : 31-08-2020 alle ore 06.32.25

  13. #13
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,995

    Predefinito

    Allora, le prove la avevo fatte con il blocco originare, quello senza il ciclo, e funzionava, quindi non mi ero accorto che da php lo spostamento non veniva appilicato.

    Ho rifatto il loop in js e così lo spostamento avviene:
    Codice HTML:
    <script>
    var tmp = '<div id="filters" class="btn-group" role="toolbar" data-toggle="buttons" style="position:relative;top:-420px; margin-left: 60px; margin-top: 20px; margin-bottom: 20px">'+
               '<label style="float:left; margin-right:10px;">Filter records:</label>'+
               '<label class="btn btn-primary active"><input type="radio" name="filterbox" id="chkAll" value="" selected>All</label>';
      for(i=18;i<76;i++)
      {
        //var anni_js[i] = "<?php echo($valori_anni);?>"; // conversione variabile da php a js 
        //if(anni_js[i] != 0) // rilevamento pulsanti attivi 
        tmp += '<label class="btn btn-primary"><input type="radio" name="filterbox" id="chk018" value="'+i+'">'+i+'</label>';
      }
      tmp += '</div>';
      
    document.write(tmp);
    </script>
    Riguardo la questione che se il valore era nullo non spariva, avevo capito diversamente. Comunque per poterlo fare, bisogna avare un array numerico e non una variabile come $anno, che è una stringa con codice html, quindi non può essere usata direttamente per determinare quali pulsanti si vedono e quali no.

    Intnato faccia un pò di prove lei, poi se non riesce afar funzionare la cosa, mi mostra quanto ha fatto in merito.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 31-08-2020 alle ore 16.28.31

  14. #14
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Scusi, mi puo' reinviare il codice modificato funzionante via pm?

    Grazie

  15. #15
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,995

    Predefinito

    Si, penso di poterlo fare, non dovrebbe essere niente di particolarmente complicato.

    Comunque se me lo consente, vorrei fare le cose con calma. Qundo ce l'ho pronto, glie lo invio in privato.

    Cordiali saluti.

  16. #16
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    Si, penso di poterlo fare, non dovrebbe essere niente di particolarmente complicato.

    Comunque se me lo consente, vorrei fare le cose con calma. Qundo ce l'ho pronto, glie lo invio in privato.

    Cordiali saluti.
    Certo, faccia con comodo, senza fretta e poi me lo invii in PM

    Grazie tante

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •