valori nella tabella non riconosciuti da javascript se provengono da data base.

giuseppeI

Utente Attivo
25 Giu 2012
41
0
0
HTML:
<div style="height: 400px; overflow: scroll;"><table id='tabella'></br><thead></thead><tbody><tr><td>0++</td><td>(v.)</td><td>badare</td><td>perché 0</td></tr><tr><td>1++</td><td>
( v.)</td><td>
abitare</td><td>perché 1</td></tr><tr><td>2++</td><td>
(v. t.)</td><td>
distendere</td><td>perché 2</td></tr><tr><td>3++</td><td>
(v.)</td><td>
distendersi</td><td>perché 3</td></tr><tr><td>4++</td><td>

Questo codice è generato da:

PHP:
$conta=0;           
                    foreach($grico as $col_rigo){
                      
                                   echo "<tr><td>$conta++</td><td>$tipo[$conta]</td><td>$italiano[$conta]</td><td>perché $conta</td></tr>";                   
                                   $conta++; 
                      }

che genera una tabella di quattro colonne di cui quelle esterne sono popolate con valori "interni", mentre quelle esterne con valori estratti da un data base.

Il risultato nell'apparenza è quello che ci si aspetta: la costruzione della tabella con i relativi valori. Tuttavia se si va a guardare il codice html generato si nota che tranne per il primo record (riga) i valori prelevati dal data base non si trovano tra i tag <td> </td> (dopo <td> il codice va a capo).
Il problema è il seguente: i valori delle celle intercettate con java script:

HTML:
 var table = document.getElementById(id_table);
	var n_colonne = table.getElementsByTagName('th').length;
	var celle = table.getElementsByTagName('td');

se si trovano tra i tag "<td>perché 1</td>" vengono riconosciuti, se invece si trovano tra i tag "... td>
( v.)</td><td>
abitare</td> ..."
i valori delle celle non vengono riconosciuti.
Come si può ovviare? ovvero come posso risolvere questo problema?
Chiedo aiuto!!
Grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
devi mettere gli apici nel modo corretto
prova cosi
PHP:
echo "<tr><td>" . ($conta++) . "</td><td>" . $tipo[$conta] . "</td><td>" . $italiano[$conta] . "</td><td>perché $conta</td></tr>";
ti sposto in php
 

giuseppeI

Utente Attivo
25 Giu 2012
41
0
0
Niente da fare, il risultato è lo stesso, ovvero funziona soltanto con il primo record.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
allora non ho capito il tuo problema
ho provato la tua tabella in questo modo
HTML:
<table id='tabella'>
    <thead>

    </thead>
    <tbody>
        <tr>
            <td>0++</td>
            <td>(v.)</td>
            <td>badare</td>
            <td>perché 0</td>
        </tr>
        <tr>
            <td>1++</td>
            <td>
                ( v.)</td><td>
                abitare</td><td>perché 1</td>
        </tr><tr>
            <td>2++</td><td>
                (v. t.)</td><td>
                distendere</td><td>perché 2</td></tr>
        <tr><td>3++</td><td>
                (v.)</td><td>
                distendersi</td><td>perché 3</td></tr>
        <tr><td>4++</td><td></tr>
</table>
<script>
    var table = document.getElementById("tabella");
    var n_colonne = table.getElementsByTagName('th').length;
    var celle = table.getElementsByTagName('td');
    for(var i=0; i<celle.length;i++) {
        alert(celle[i].innerHTML);
    }
</script>
nel ciclo accedo a tutti i valori delle td
 

giuseppeI

Utente Attivo
25 Giu 2012
41
0
0
Premetto che il codice js di 'cercaInTable2.js' l'ho recuperata in rete.
Questa la funzione che ricerca il valore:

HTML:
FUNZIONE PER RICERCA IN SINGOLA COLONNA DI TABELLA
function ricercaInCol(id_table,colonna){
	ripristinaTable(id_table);
	var valore = document.ricerca.campo.value;
	var table = document.getElementById(id_table);
	var n_colonne = table.getElementsByTagName('th').length;
	var celle = table.getElementsByTagName('td');
	var contatore = 0;
	for(var j=(colonna-1); j<celle.length; j=(j+n_colonne)){
//document.write(celle[j].innerHTML + " - " + valore);
		if(celle[j].innerHTML == valore){
			celle[j].className='trovato';
			contatore++;
		}
	}
	document.getElementById('responso').innerHTML='Trovati: '+contatore;
}


Non riesco capire perché non gira in quanto "celle[j].innerHTML" contiene il valore da controllare.
e lo si può verificare con //document.write(celle[j].innerHTML + " - " + valore);


Il codice genera una tabella di quattro colonne. Nelle prime tre colonne i dati sono prelevati da un data base, la quarta è di prova (i dati non provengono dal data base). Il programma funziona soltanto con la prima riga per quanto riguarda i valori del data base, mentre funziona per tutta la quarta colonna (colonna di prova).
PHP:
<!DOCTYPE html>

<html>
<head>
   

       <script type='text/javascript' src='cercaInTable2.js'></script>
	<link rel="stylesheet" type="text/css" href="stili/stile.css" />
</head>

<body>
   <?php
            $conn=mysql_connect("localhost","root","");
            if (!$conn)
                {
                echo "(connessione fallita, riprova)";
                }
            else
            {
                if (!mysql_selectdb ("grico"))
                    {echo"connessione non riuscita, riprova!";}
                        else 
                        {
                           $sql="select * from verbi";
                           $result= mysql_query($sql);
                                    if (mysql_num_rows($result)>0)
                                      {$dati=mysql_fetch_assoc($result);
                                       $Grico=$dati["grico"];
                                       $Tipo=$dati["tipo"];
                                       $Italiano=$dati["italiano"];
                                       $Note=$dati["note"];
                                       $italiano = explode ( "\r", $Italiano);
                                       $grico=explode ( "\r", $Grico);
                                       $tipo=explode ( "\r", $Tipo);
                                       $note=explode ( "\r", $Note);         
                                   }  
                        }
         
            }
         
         //*********************************************
            echo  '<div style="height: 400px; overflow: scroll;">';
            echo  '<h1>Ricerca in tabella html</h1>';
            echo  "<table id='tabella'>";
            echo'</br>';
            echo  '<thead>';
                        echo  "<tr><th class='intestazione'>da data base</th><th class='intestazione'>da data base</th><th class='intestazione'> data base</th><th class='intestazione'>programma</th></tr>";
            echo  '</thead>';
            echo  '<tbody>';
            $conta=0;
            foreach($grico as $col_rigo){
                              
                                  echo "<tr><td>$col_rigo</td><td>$tipo[$conta]</td><td>$italiano[$conta]</td><td>perché $conta</td></tr>";
                                 
                                  $conta++; 
              }
                         
            echo  '</tbody>';
            echo  '</table>';
            echo  '</div>';
   ?>
  
<script type='text/javascript'>
ripristinaTable('tabella');
</script>

<br/><br/>

<form name='ricerca'>
Valore da cercare in tutta la tabella: <input type='text' size='10' name='campo'/>
<input type='button' value='Cerca in tabella' onClick="ricercaInTable('tabella')"/>
<input type='button' value='Cerca nella colonna italiano' onClick="ricercaInCol('tabella',3)"/>
<span id='responso'></span>
</form>

</body>
</html>


questi i valori che si ottengono con document.write in
(celle[j].innerHTML + " - " + valore);

inserendo il valore della prima riga (valore badare):
badare - badare abitare - badare distendere - badare distendersi - badare bruciare - badare ......

questo inserendo la seconda riga (abitare):
badare - abitare abitare - abitare distendere - abitare distendersi - abitare bruciare ......

Come si vede nell'apparenza non ci sono differenze, nella realtà funziona soltanto con il primo valore.
Non ci sono problemi, come detto, con la quarta colonna (valori che non provengono dal data base)

Spero di essere stato chiaro
Ti ringrazio dell'attenzione e della disponibilità
Giuseppe
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Difficoltà inserimento valori nella tabella scontrini PHP 16
L passaggio di valori nella stessa pagina PHP 5
D 2 Valori nella clausola WHERE PHP 0
D Inserire 2 valori da ricercare nella funzione WHERE PHP 0
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
G Invio di più valori con la stessa checkbox PHP 4
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
C prendere dei valori da Plugin e inserirli nel database joomla Joomla 0
F Stampare valori di un database PHP 14
T Recupero valori tramite $_GET PHP 4
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
M Problemi con la stampa dei valori in php PHP 1
M Passaggio Valori checbox in textarea Javascript 1
D passare valori da database sql a php PHP 1
O Recupero valori da listato Javascript 0
R Raggruppare valori array PHP 5
R Estrarre valori duplicati più volte PHP 0
T recupero valori select multipla da android Javascript 3
L estrarre valori max tra più tabelle MySQL 2
MarcoGrazia Valori di ritorno json via ajax non visti. jQuery 1
N VENDITA CORSO DROPSHIPPING LUCA VALORI Altri Annunci 0
A Ottenimento valori presenze istantanee MySQL 8
S Come filtrare valori di un array PHP 4
L Estrazione valori max su più campi MySQL 4
G Controllare valori in 2 tabelle PHP 5
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
G MariaDB non restituisce dei valori PHP 7
M Estrarre valori MAX da un db con una left join MySQL 8
S Istruzione sql valori "simili" PHP 7
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
S [PHP] Confrontare due array con valori quasi uguali PHP 2
D [PHP] Tabella: modificare direttamente i valori PHP 6
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
B inserire valori da una tabella a un altra mysql PHP 34
M [PHP] Recuperare coppia con valori i valori MAX e coppia con valori MIN PHP 26
Tommy03 [PHP] Media valori presi da una query PHP 3
M Filtrare risultati con valori checkbox passati con jquery jQuery 2
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
G [ASP] Ciclare i valori di 2 array Classic ASP 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
R php Somma valori in file csv PHP 2
A sommare valori a video per lo stesso giorno jQuery 1
E [PHP] Istruzione condizionale con valori booleani PHP 16
S [Javascript] come estrarre valori array e inserirli in diverse variabili Javascript 1
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
elpirata [MySQL] Sostituire valori campi con dati casuali MySQL 4
K [PHP] Controllare dati database tra due valori PHP 18
alankanz [VBA] Valori Array in una cella Visual Basic 1
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2

Discussioni simili