Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Tabella e contenuti non visualizzati

    Salve a tutti. Premetto che sono una schiapap con js ajax.
    Sto creando una funziona che mi visualizzi i contenuti in una tabella dinamicamente in modo da poter modificare eliminare ecc ecc.

    lo script non l'ho fatto io, l'ho riadattato. io ho creato la parte html e php.

    vi posto un pò di codice per far capire cosa sto facendo.

    La pagina html è composta da 2 schede, uan dove si inserisce e va bene, ed una dove si visualizza...

    Pagina HTML
    codice:
     
    <div id="tabs-2">
    	<span class="validate_error" id="error_error"></span> 
    		<fieldset> 
    			<legend>Lista News</legend> 
    			<legend>
    			<span class="like_button" id="filter_active_news">News Attive</span>	           <span class="like_button" id="filter_not_active_news">News Non Attive</span>
    			</legend> 
    	<hr /> 
    	<table id="edit_news" class="fullwidth" cellpadding="0" cellspacing="0" border="0"> 
    		<thead> 
    			<tr> 							
    	    		    <th width="5%"><input type="checkbox" class="checkall" /></th>
    			    <th>ID</th> 
    			    <th width="20%">Titolo</th>
    			    <th width="20%">Autore</th> 
    			    <th width="20%">Data Creazione</th>  
    			    <th width="20%">Strumenti</th> 
    			    <th>...</th>    
    			    <th>...</th>
    			    <th>...</th>
    			    <th>...</th>
    			    <th>...</th>
    			    <th>...</th>
      			</tr> 
    		</thead> 
    		<tbody> 
    		</tbody> 
    	</table> 
    	<hr />	
    	</fieldset> 
    	</div>
    pagina news.js
    codice:
    //begin tab-2
    var edit_news_table;
    var filter_active_news = false;
    var filter_not_active_news = false;
    	    
    edit_news_table = $('#edit_news').dataTable({
            "oLanguage":{"sSearch":'Cerca:'},
            "bProcessing":true,
    	"bServerSide":true,
    	"aoColumns"   : [
    	    		{ "bSortable": false,"sClass": "center" },
    			{ "bSortable": false},
    			null,
    			null,
    	        	null,
    			null,
    			null,
    			{ "bSortable": false},
    			{ "bSearchable": false,"bVisible":    false},
    			{ "bSearchable": false,"bVisible":    false},
    			{ "bSearchable": false,"bVisible":    false},
    			{ "bSearchable": false,"bVisible":    false},
    		      //{ "bSearchable": false,"bVisible":    false},							
    							],
    
    	"bAutoWidth": false,
    	"aaSorting": [[2, 'asc']],
    	"sAjaxSource"	: URL+'/news/ajax_show_all_news_table',
    	"fnServerData": function ( sSource, aoData, fnCallback ) {
    	aoData.push( { "name": "ajax", "value": "true" } );
    	             if(filter_active_news)		{aoData.push( { "name": "filter_active_news"		, "value": "true" } );}
    				if(filter_not_active_news)	{aoData.push( { "name": "filter_not_active_news"	, "value": "true" } );}
    		    $.ajax( {
    		    "dataType": 'json', 
    		    "type": "POST", 
    		    "url": sSource, 
    		    "data": aoData, 
    		    "success": function(data, textStatus, XMLHttpRequest){
    			if(data.respond == "NOT LOGGED IN"){
    		    		window.location.replace(URL);
    			}else{
    				fnCallback(data, textStatus, XMLHttpRequest);
    			       }
    			}
    		} );
    	},
    	"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
    		$(nRow).data('id',aData[2]);
    		return nRow;
    	}
    });

    Allora nell'html come vedete ci sono delle colonne con i puntini, quelli sono dati che si devono visualizzare quando clicco sull'icone per la visualizzazione di info aggiuntive.

    La parte dove sicuramente sbaglio è la parte ajax "aoColumns" . non so bene come definirla, come usarla e a cosa serve. La classe php che preleva i dati funziona perfettamente in quanto quando lancio la pagina con firebugs non ci sono errori e vedo che il vettore dei risultati è carico.

    Qualcuno mi da una nano a capire come mai non visualizzo i dati nella tabella? Inoltre c'è la scritta caricamento in corso quando lancio la pagina.

    Anche la ricerca funziona perfettamente, vedo che la richiesta c'è e c'è un vettore dati di risposta.

    Grazie

  2. #2
    Qualcuno ha idea su dove sbaglio?

    Ho dato uno sguardo a degli esempi su questo sito http://www.datatables.net/ ma senza gorsso successo.

    Posto anche la pagina php:

    codice:
    	function ajax_show_all_news_table(){
    					/* Paging */
    			$sLimit = "LIMIT ".$this->input->post('iDisplayStart').",".$this->input->post('iDisplayLength');
    			
    			/* Ordering */
    			$sOrder = "ORDER BY  ";
    			for ( $i=0 ; $i<$this->input->post('iSortingCols') ; $i++ ){
    				switch($this->input->post('iSortCol_'.$i)){
    					case 3:$sOrder .= 'titolo '.$this->input->post('sSortDir_'.$i) .',';break;
    					case 4:$sOrder .= 'create_date '.$this->input->post('sSortDir_'.$i) .',';break;
    					case 5:$sOrder .= 'created_by '.$this->input->post('sSortDir_'.$i) .',';break;
    					default:$sOrder .= 'id '.$this->input->post('sSortDir_'.$i) .',';break;
    				}
    			}
    			$sOrder = substr_replace( $sOrder, "", -1 );
    		
    			$sWhere = "";
    			
    			if($this->input->post('sSearch') || $this->input->post('filter_active_news') || $this->input->post('filter_not_active_news')){
    				$sWhere = "WHERE ";
    				if ($this->input->post('sSearch')){
    					$sWhere .= "(id LIKE '%".$this->input->post('sSearch')."%' OR ".
    									"titolo LIKE '%".$this->input->post('sSearch')."%' OR ".
    					                "create_date LIKE '%".$this->input->post('sSearch')."%' OR ".
    					                "created_by LIKE '%".$this->input->post('sSearch')."%') ";
    					if($this->input->post('filter_active_news') || $this->input->post('filter_not_active_news')){
    						$sWhere .= " AND";
    					}
    				}
    				
    				if($this->input->post('filter_active_news')){
    					$sWhere .= " attivo = 1 AND"; 
    				}
    				if($this->input->post('filter_not_active_news')){
    					$sWhere .= " attivo = 0 AND"; 
    				}
    				
    				if($this->input->post('filter_active_news') || $this->input->post('filter_not_active_news')){
    						$sWhere = substr_replace( $sWhere, "", -3 );
    				}
    			}
    			  	 	 	 	
    			$sQuery = 	"SELECT SQL_CALC_FOUND_ROWS id, titolo, desc_breve, testo, tag_news, attivo, create_date, created_by FROM news $sWhere $sOrder $sLimit";
    			echo $query = $this->db->query($sQuery)->result();
    			
    			echo $sQuery = "SELECT FOUND_ROWS()";
    			$rResultFilterTotal = $this->db->query($sQuery)->first_row('array');
    			$iFilteredTotal = $rResultFilterTotal["FOUND_ROWS()"];
    			
    			$sQuery = "SELECT COUNT(id) FROM news";
    			$rResultTotal = $this->db->query($sQuery)->first_row('array');
    			$iTotal = $rResultTotal["COUNT(id)"];
    			
    			$sOutput = '{';
    			$sOutput .= '"sEcho": '.intval($this->input->post('sEcho')).', ';
    			$sOutput .= '"iTotalRecords": '.$iTotal.', ';
    			$sOutput .= '"iTotalDisplayRecords": '.$iFilteredTotal.', ';
    			$sOutput .= '"aaData": [ ';
    			foreach ($query as $aRow){
    				$sOutput .= "[";
    				$sOutput .= '"'.addslashes('<span alt="" class="ui-icon ui-icon-plus"></span>').'",';
    				$sOutput .= '"'.addslashes('<input type="checkbox" />').'",';
    				$sOutput .= '"'.addslashes($aRow->id).'",';
    				$sOutput .= '"'.addslashes($aRow->titolo).'",';
    				$sOutput .= '"'.addslashes($aRow->created_by).'",';
    				$sOutput .= '"'.addslashes($aRow->create_date).'",';
    				$sOutput .= '"'.addslashes('<span class="ui-icon ui-icon-pencil" ></span>'.(($aRow->attivo == '1')?'<span class="ui-icon ui-icon-locked"></span>':'<span class="ui-icon ui-icon-unlocked"></span>').'<span class="ui-icon ui-icon-close"></span>').'",';
    				$sOutput .= '"'.addslashes($aRow->testo).'",';
    				$sOutput .= '"'.addslashes($aRow->tag_news).'",';
    				$sOutput .= '"'.addslashes($aRow->attivo).'",';
    				$sOutput .= "],";
    			}
    			$sOutput = substr_replace( $sOutput, "", -1 );
    			$sOutput .= '] }';
    			echo $sOutput;
    			return;
    	}
    la tabella è news ed i campi sono:

    id - titolo - desc_breve - testo - tag_news - attivo - create_date - created_by -

    Ripeto almeno tramite firebugs non ci sono errori nel codice. La richiesta la fa e c'è un array risultato con 12 righe. Quelle che ho inserito nella tabella.

    Ciao e grazie


  3. #3
    Up, sono ancora in panne, non riesco a risolvere.

    Se vi serve altro del codice chiedete pure.

    Grazie


    PS:

    ovviamente la riga
    Diventa


  4. #4
    uppettino


  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: Tabella e contenuti non visualizzati

    Originariamente inviato da lavoroweb
    Salve a tutti. Premetto che sono una schiapap con js ajax.
    Io posso solo consigliarti di leggerti le ottime guide di html che trovi qui.
    Le operazioni che hanno una complessità medioalta diventa difficile trovare un esperto che si prende a cuore il tuo problema
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Grazie per il consiglio. Come scritto nel post successivo mi sono letto un pò di documentazione relativa alla datatables, e sinceramente non riesco molto a capire il problema da cosa sia dovuto.

    Ho fatto un pò di prove, ma il risultato è sempre lo stesso.

    Più che la diretta risoluzione del problema mi interesserebbe anche solo qualche spunto per poter ragionare...

    Del tipo, l'errore potrebbe essere nell'html... o non so.

    Qui di seguito c'è il codice che ho modificato, secodno quello che ho capito dal sito di cui sopra.
    table id="edit_news"
    codice:
    <tr> 	
    	<th width="5%"></th>
    	<th width="5%"><input type="checkbox" class="checkall" /></th>
    	<th>ID</th> 
    	<th width="40%">Titolo</th>
    	<th width="10%">Data Creazione</th> 
    	<th width="10%">Creato Da</th> 
    	<th width="10%">Strumenti</th> 
    	<th>Tag</th> 
    	<th>Testo</th>
    	<th>Attiva</th>
    </tr>
    js
    codice:
    edit_users_table = $('#edit_news').dataTable({
            "oLanguage":{"sSearch":'Cerca:'},
    	"bProcessing":true,
    	"bServerSide":true,
    	"aoColumns": [
     				{ "bSortable": false,"sClass": "center" },
        				{ "bSortable": false},
        				null,
        				null,
        				null,
        				null,
        				null,
        				{ "bSortable": false}, //strumenti
      				{ "bSearchable": false,"bVisible":    false},
        				{ "bSearchable": false,"bVisible":    false},
        				{ "bSearchable": false,"bVisible":    false},
        				//{ "bSearchable": false,"bVisible":    false},
        				//{ "bSearchable": false,"bVisible":    false},
        				//{ "bSearchable": false,"bVisible":    false},
        				//{ "bSearchable": false,"bVisible":    false}
        ],
    	"bAutoWidth": false,
    	"aaSorting": [[2, 'asc']],
    	"sAjaxSource"	: URL+'/news/ajax_show_all_news_table',
    funzione ajax_sho_news_table
    codice:
    foreach ($query as $aRow){
    	$sOutput .= "[";	
    	$sOutput .= '"'.addslashes('<span alt="" class="ui-icon ui-icon-plus"></span>').'",';
    	$sOutput .= '"'.addslashes('<input type="checkbox" />').'",';
    	$sOutput .= '"'.addslashes($aRow->id).'",';
    	$sOutput .= '"'.addslashes($aRow->titolo).'",';
    	$sOutput .= '"'.addslashes($aRow->create_date).'",';
    	$sOutput .= '"'.addslashes($aRow->created_by).'",';
    	$sOutput .= '"'.addslashes($aRow->tag_news).'",';
    	$sOutput .= '"'.addslashes('<span class="ui-icon ui-icon-pencil" ></span>'.(($aRow->attivo == '1')?'<span class="ui-icon ui-icon-locked"></span>':'<span class="ui-icon ui-icon-unlocked"></span>').'<span class="ui-icon ui-icon-close"></span>').'",';
    	$sOutput .= '"'.addslashes($aRow->testo).'",';
    //	$sOutput .= '"'.addslashes($aRow->tag_news).'",';
    	$sOutput .= '"'.addslashes($aRow->attivo).'",';
    	$sOutput .= "],";
    }
    Il codice almeno da quello che ho capito dovrebbe essere come sopra.

    con firbugs vedo il vettore caricato con i suoi risultati, quindi presumo che non ci siano errori qui.

    Grazie comunque per la tua risposta.

    Buon Forum a tutti.

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.