inserire i dati ottenuti da una jquery in una tabella già esistente

  • Creatore Discussione Creatore Discussione Mattuso
  • Data di inizio Data di inizio

Mattuso

Nuovo Utente
19 Mag 2019
6
0
1
Dunque.. il mio progetto volge al termine e sono all'ultimo scalino (spero), da cui però non riesco a venire fuori.
Ho una pagina che ha l' header di una tabella, ogni colonna ha l'intestazione e delle checkbox che permettono di filtrare i risultati tramite una ajax che invia le richieste ad una seconda pagina e ritorna i dati aggiornati alla pagina 1. Fin qui tutto bene, il problema è che non riesco a posizionare i dati sotto all'header, ma ogni volta li mette sopra.
La struttura è la seguente.
pagina1:

PHP:
<div id="container">
<table class='blueTable' id="max">
   <thead>
       <tr>
       <th>Part number</th>
   <div class="box">
       <th>Model
       <?php
       include "conn.php";
       $result = mysqli_query($conn,"SELECT DISTINCT model FROM pfindercard WHERE family = 'Card' ORDER BY model ASC");
       while ($row = $result->fetch_assoc()){
           echo "<div class='list-group-item checkbox'>
           <label><input type='checkbox' class='common_selector model' value='" . $row['model'] . "'>" . $row['model'] . "</label></div>";
       }
       ?>
       </th></div>
la div "box" viene ripetuta per tutte le colonne, al termine del quale si chiude l'head della tabella e c'è la div che mostra i dati della jquery
HTML:
</div>
</thead>
<div class="filter_data"></div>
Questa è la jquery
PHP:
$(document).ready(function(){

    filter_data();

    function filter_data()
    {
   
        var action = 'fetch_data';

        var model = get_filter('model');
       /* elenco delle variabili */
       
        $.ajax({
            url:"pfindercard1.php",
            method:"POST",
            data:{action:action, model:model,  /*elenco delle variabili */},
            success:function(data){
                $('.filter_data').html(data);
            }
        });
    }

    function get_filter(class_name)
    {
        var filter = [];
        $('.'+class_name+':checked').each(function(){
            filter.push($(this).val());
        });
        return filter;
    }

    $('.common_selector').click(function(){
        filter_data();
    });

});
nella pagina 2, pfindercard1.php, c'è l'output con l'elenco delle variabili, ognuna inclusa in una coppia di tag td - /td.
Ho provato ad aprire il tbody nella pagina 1 e non viene creata nessuna tabella, stessa cosa mettendo il tbody nella pagina 2, l'unico modo per avere una tabella è stato quello di inserire il tag table nella pagina 2, ma non è il risultato che cerco, anche perchè comunque i dati venivano sempre posti sopra all'header.
Non sono molto esperto in javascript, ma credo di aver capito di dover formattare l'output non nella pagina 2, ma nella jquery della pagina 1, inserendo l'output in un ciclo con i tag td e /td per ogni variabile ricevuta, solo che non so come fare.
Per chiarezza, questo è ciò che ottengo.
Qualcuno sa gentilmente darmi un suggerimento?
 
Ultima modifica di un moderatore:
alla fine ho risolto inserendo la class "filter_data" al tag tbody invece che alla div e tutto ha funzionato a dovere..
 

Discussioni simili