Inserire dei dati di una tabella dinamica in un file esterno js

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
Buonasera e buon sabato :)

Ho una semplice domanda da fare...

ho due tabelle dinamiche in cui si aggiunge le celle con valori diversi man mano che gli vien detto da un onclik in uno script javascript, le strutture delle tabelle diciamo che sono cosi :

HTML:
<table style="text-align: left; width: 100%;" border="1"
 cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td>nomi</td>
    </tr>
    <tr>
      <td>andrea</td>
    </tr>
    <tr>
      <td>marco</td>
    </tr>
    <tr>
      <td>carlo</td>
    </tr>
  </tbody>
</table>

e la seconda tabella 

<table style="text-align: left; width: 100%;" border="1"
 cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td>indirizzo</td>
    </tr>
    <tr>
      <td>Roma</td>
    </tr>
    <tr>
      <td>Napoli</td>
    </tr>
    <tr>
      <td>Milano</td>
    </tr>
  </tbody>
</table>

e poi ho un file esterno : dati.js che si presenta cosi :

var nomi = new array()

nomi[0] = " andrea";
nomi[1] = " marco";
-----

var indirizzo = new array()

indirizzo[0] = "Roma";
indirizzo[1] = "Napoli";
-------

HTML:
var nomi = new array()

nomi[0] = " andrea";
nomi[1] = " marco";
-----

var indirizzo = new array()

indirizzo[0] = "Roma";
indirizzo[1] = "Napoli";
-------

E' possibile magari con un onclik inserire i nuovi valori delle tabelle sotto i due array ??
 
Nessuno mi risponde ?? :((

ho trovato intanto questo script che diciamo potrebbe fare al caso mio... ma tre problemi,

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>1 Esempio di utilizzo oggetto ActiveX e JavaScript</title> 
</head> 
<script language="Javascript" type="text/javascript" > 
<!-- 
// 1 Lezione "Scrivere su un file con JavaScript e ActiveX " 
// 12 Aprile 2002 

var nome="Marco"; 
var cognome="Magnus"; 

var filename = "c:/mytest_filesystem/mydata.txt"; 

function WriteToFile() 
{ 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
// se il file esiste aggiunge due righe 
// con il contenuto delle variabili nome/cognome 
if (fso.FileExists(filename)) 
{ 
var a, ForAppending, file; 
ForAppending = 8; 
file = fso.OpenTextFile(filename, ForAppending, false); 
file.WriteLine(nome); 
file.WriteLine(cognome); 
} 
//Se non esiste crea il file e 
// aggiunge due righe 
// con il contenuto delle variabili nome/cognome 
else 
{ 
var file = fso.CreateTextFile(filename, true); 
file.WriteLine(cognome); 
file.WriteLine(cognome); 
} 
file.Close(); 
} 
//------------------------------------------------------- 
function ReadFromFile(){ 
var fso, a, ForReading; 
ForReading = 1; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
file = fso.OpenTextFile(filename, ForReading, false); 
var nome = file.readline(); 
var cognome = file.readline(); 
document.all.myarea.innerHTML = nome + "-" + cognome; 
file.Close(); 
} 

//--> 
</script> 

<body > 
<b>1. Scrivere su un file con JavaScript e ActiveX </b><br> 
<I>Attenzione assicurarsi che i file risiedano nel path specificato nella variabile filename e 
che Explorer sia abilitato per gli oggetti ActiveX 
<br></I> 

<br> 
NOMINATIVO <span id="myarea"></span><br> 

<script language="Javascript" type="text/javascript" > 
<!-- 
// Lancio delle funzioni di scrittura e lettura 
WriteToFile(); 
ReadFromFile(); 
//--> 
</script> 
</body> 
</html>

uno : posso integrarlo in un file html/javascript ??

due : come posso dire a questo script di scrivere in un ben determinato punto del file di testo ?...

tre : Activex non è supportato da Crome, c'è modo di sostituirlo ??

Grazie e buona domenica a chi legge :)
 
se ho capito vuoi creare una tabella da un file di testo

usa ajax e jquery

HTML:
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script>
    $.post('tabella.txt', function(file) {

        var riga = file.split(";");

        $.each(riga, function(elem) {
                    
            $('#risultato').append('<tr><td>' + riga[elem] + '</td></tr>');
                    
        });
    });

</script>
<style>
    table#risultato {
        text-align: left;
        width: 100%;
    }
    table#risultato td {
        padding:2px;
        border: 1px solid #333;
    }
</style>
<table id="risultato">
    <tbody>
        <tr>
            <td>nomi</td>
        </tr>
    </tbody>
</table>

file tabella.txt
Codice:
marco;carlo;franco

poi ovviamente ci sono le funzioni per scrivere nel file
 
No scusa... voglio creare un file di testo da un file script/html ....
tutto il contrario insomma..... :)
 
Cioè desidero incollare in un file di testo.... delle variabili create con uno script, e scusa se è un htm vecchiotto ma questo c'è in giro... :(

se vuoi ti posto lo script ..
 
strano non trovo niente di serio per scrivere su un file con javascript
se vuoi ti posto lo script ..
Tremo al sol pensiero :crying:
 
Ho semplificato lo script di partenza cosi spero di essere più chiaro, questo è uno script che formatta un testo inserito in un form e poi con un onclick inserisco tale testo in una cella di una tabella ...

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>TABELLA DINAMICA</title>
<style>
     table.tabella{
	border: 0px;
      }
   table.tabella th{
		
	padding : 0px;
      }
         table.tabella td{
		
	padding : 0px;
    }

       	           .siti { margin-left:6em;
                 }
 
      .tb { border: 2px solid red;
          margin-left:2em;
                 }

       .tb1 { border: 2px solid green;
          margin-left:2em;
     }

      .tb2 { border: 2px solid DEEPSKYBLUE;
          margin-left:2em;
    }

       .num { border-bottom: 4px solid DEEPSKYBLUE;
        margin-left:2em;
               }

              .ind { border-bottom: 4px solid red;
        margin-left:2em;
             }

                .tit { border-bottom: 4px solid green;
               margin-left:2em;
         }
      
           .aut { border-bottom: 4px solid lime;
             margin-left:2em;
          }
         
     .fin { 
             font-size: 30px;
          }

   </style>

<script type='text/javascript'>


function rimpiazza() { 
var miaStringa = document.mioform.testo.value;

miaStringa = miaStringa.replace(/’/g, "&acute");
miaStringa = miaStringa.replace(/\n/g, "<br/>");
miaStringa = miaStringa.replace(/'/g, "&acute");
-------------------------- 
document.mioform.risultato.value=miaStringa;

pippo=document.getElementById("scritta").innerHTML=miaStringa;

}
     
                    


// Creo la tabella della descrizione dei castelli

            function aggiungiRiga(id_table){

	var table = document.getElementById(id_table);
	var tbody = table.getElementsByTagName('tbody')[0];
	var colonne = table.getElementsByTagName('th').length;	
	var tr = document.createElement('tr');
         tbody.appendChild(tr);

               	var td = document.createElement('td');
		var tx = document.createTextNode('description['+pluto+']="');
		td.appendChild(tx);
		tr.appendChild(td);
                  
               	var td = document.createElement('td');
		var tx = document.createTextNode(pippo);
		td.appendChild(tx);
		tr.appendChild(td);

               	var td = document.createElement('td');
		var tx = document.createTextNode('";');
		td.appendChild(tx);
		tr.appendChild(td);
 

                
td = document.createElement('td');
   tr.appendChild(td);
   var a = document.createElement('a');
   td.appendChild(a);
   a.href = '#';
   a.onclick = deleteRowFromTbody;
   a.appendChild(document.createTextNode('Elimina'));
   a.className="cancella";

   // si nasconde anche la eventuale tabella visualizzata
   // con i dati inseriti e passati a php
   var e = document.getElementById("boxtabella");
   // si controlla se la tabella è visualizzata
   if (e.style.display != 'none' || e.style.visibility != 'hidden')
    {
       e.style.display = 'none';  // si nasconde la tabella
    }
		
}
 

//Cancella la riga corrispondente al link Elimina cliccato
var deleteRowFromTbody = function(){
   //Ottengo il tr dal link
   var tr = this.parentNode.parentNode;
   //Lo cancello
   tr.parentNode.removeChild(tr);

}



//Cancella il tbody creando un altro elemento tbody e sostituendolo
function eliminatabella(id_table)


{   var table = document.getElementById(id_table);
   var tbody = table.getElementsByTagName('tbody')[0];
   var newTbody = document.createElement("tbody");
   tbody.parentNode.replaceChild(newTbody, tbody);
   newTbody.id = "('tbody')";

   // si nasconde anche la eventuale tabella visualizzata
   // con i dati inseriti e passati a php
   var e = document.getElementById("boxtabella");
   e.style.visibility = 'hidden';

}

</script>

</head>

<body>




<div class="tit";>-------------------------DESCRIZIONE CASTELLO ------------------------------------

<form name="mioform">
<textarea name="testo2" cols="115" rows="7" style=" border: 3px dashed LIGHTCORAL;"></textarea><br><br>
<textarea name="risultato" cols="115" rows="5"></textarea><br><br>
<input type="button" value="Clicca2" onclick="rimpiazza();"> <input type="reset" value="Cancella2">
</form></div><br/>



<div id="scritta"></div>



--------------------------------------------------------------------------------------------------------
       
         <div class="tb1";>
	<table border='0' id='titles' class='tabella' cellspacing='0' cellpadding='0'>
	<thead><tr><th>----DESCRIZIONE----</th><th></th><th></th></tr></thead>
	<tbody>
	
	</tbody>
	</table><br/>
	<input type='button' value='Aggiungi riga' onClick="aggiungiRiga('titles')" />
        <input type='button' value='Elimina Tabella' onClick="eliminatabella('titles')" /></div></br>


--------------------------------------------------------------------------------------------------------
 

</body>

</html>


e poi ho un file castelli.js esterno in cui c'è l'array dei castelli :

HTML:
var description = new array
description[0] = napoli
description[1] = milano

Io vorrei che una volta inserito nella tabella con un altro clik si aggiungesse anche sotto questo altro file esterno la nuovo descrizione.
Spero di essere stato più chiaro :)
 
Allora perdonami ma ho risolto il problema dell'inserimento nello script, inserendo questa procedura :

HTML:
// 1 Lezione "Scrivere su un file con JavaScript e ActiveX " 
// 12 Aprile 2002 

var nome = "document.mioform.risultato.value";
var cognome = "miaStringa";



var filename = "F:/BLOG CAVALIERI ERRANTI/SCRIPT ED HTML PER IL BLOG/HTML PER SOSTITUIRE CARATTERI/FILETXT/PROVA.JS"; 
function WriteToFile() 
{ 
var nome = document.mioform.risultato.value; 
var cognome = "miaStringa";

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
// se il file esiste aggiunge due righe 
// con il contenuto delle variabili nome/cognome 
if (fso.FileExists(filename)) 
{ 
var a, ForAppending, file; 
ForAppending = 8; 
file = fso.OpenTextFile(filename, ForAppending, false); 
file.WriteLine(nome); 
file.WriteLine(cognome); 
} 
//Se non esiste crea il file e 
// aggiunge due righe 
// con il contenuto delle variabili nome/cognome 
else 
{ 
var file = fso.CreateTextFile(filename, true); 
file.WriteLine(nome); 
file.WriteLine(cognome); 
} 
file.Close(); 
} 
//------------------------------------------------------- 
function ReadFromFile(){ 

var fso, a, ForReading; 
ForReading = 1; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
file = fso.OpenTextFile(filename, ForReading, false); 
var nome = file.readline(); 
var cognome = file.readline(); 
document.all.myarea.innerHTML = nome + "-" + cognome; 
file.Close(); 
}

che richiamo quando voglio con un onclik...

Adesso ho il secondo problema.... inserire la linea di testo nel documento in una zona ben precisa...
altrimenti va sempre alla prima riga.... in questa procedura c'è il comando write, ho letto da una parte ma ho perso il link, che ci sono altri due comandi a posto di write , tra cui uno appunto che ti fa inserire la linea di testo dove vuoi nel documento esterno, per caso la rimembri ???

e se si mi fai un piccolo esempio per cortesia '?? :)
Grazie. Domenico.
 
UPDATE ??
questo serve per le query ne linguaggi SQL

quello che cerchi tu è innerHTML che t permette di scrivere del codice dentro un elemento della pagina
 
None.... ti riposto la funzione che mi scrive su un file di testo :

HTML:
// 1 Lezione "Scrivere su un file con JavaScript e ActiveX " 
// 12 Aprile 2002 

var nome = "document.mioform.risultato.value";
var cognome = "miaStringa";



var filename = "F:/BLOG CAVALIERI ERRANTI/SCRIPT ED HTML PER IL BLOG/HTML PER SOSTITUIRE CARATTERI/FILETXT/PROVA.JS"; 
function WriteToFile() 
{ 
var nome = document.mioform.risultato.value; 
var cognome = "miaStringa";

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
// se il file esiste aggiunge due righe 
// con il contenuto delle variabili nome/cognome 
if (fso.FileExists(filename)) 
{ 
var a, ForAppending, file; 
ForAppending = 8; 
file = fso.OpenTextFile(filename, ForAppending, false); 
file.WriteLine(nome); 
file.WriteLine(cognome); 
} 
//Se non esiste crea il file e 
// aggiunge due righe 
// con il contenuto delle variabili nome/cognome 
else 
{ 
var file = fso.CreateTextFile(filename, true); 
file.WriteLine(nome); 
file.WriteLine(cognome); 
} 
file.Close(); 
} 
//------------------------------------------------------- 
function ReadFromFile(){ 

var fso, a, ForReading; 
ForReading = 1; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
file = fso.OpenTextFile(filename, ForReading, false); 
var nome = file.readline(); 
var cognome = file.readline(); 
document.all.myarea.innerHTML = nome + "-" + cognome; 
file.Close();

richiamando questa funzione mi aggiunge su un file di testo esterno una riga, e mi funziona benissimo, ma scrive sempre a inzizio documento...

io ho letto questo su un sito :

Opzioni di scrittura per file esterni :

Se per leggere un file abbiamo i metodi READ ed UPDATE, per la scrittura abbiamo i metodi WRITE, APPEND e ancora una volta UPDATE che risulta valido per entrambe le operazioni.

WRITE apre il file in sola scrittura; se il file non esiste viene creato, se esiste già viene sovrascritto dai nuovi contenuti. Non è quindi possibile usare questo metodo per aggiungere dei dati ad un file, ma solo eventualmente per sostituirli.
APPEND apre il file in sola scrittura; se il file non esiste viene creato, se invece esiste già i dati verranno aggiunti alla fine del file, è quindi possibile usare questo metodo per aggiungere dati ad un file.
UPDATE come abbiamo già visto apre il file sia per la lettura che per la scrittura; se il file non esiste viene creato ed è possibile ricavare o scrivere informazioni in qualsiasi punto del file.

quindi ho pensato che invece del write devo usare il comando UPDATE, ma come faccio a dirgli su quale riga deve scrivere sul documento di testo ??
 
ma li parlano di Actionscript quindi di flash
 
C'è anche una discussione sullo stesso argomento sul vostro sito e precisamente qui :

http://forum.mrwebmaster.it/javascript/5808-scrivere-javascript.html

ed è in fondo la funzione che sto usando... il problema per sempre più chiarezza è questo :

ho questo file esterno : dati.txt

HTML:
var frasi = new Array();
frasi[0]= "primo";
frasi[1]= "secondo"


var autori = new Array
autori[0]= "carlo";
autori[1] = "marco":

io voglio tramite quella funzione scrivere un nuovo valore sotto frasi[1] e poi sotto autore[1], chiaramente ho tutto lo script fatto , mi serve solo nella funzione di cui sopra il comando che mi permette di aggiungere quella linea sotto un ben specificato posto. semplice no ? :)
 
non direi semplice
quello script ha cmq 7 anni e gira solo su IE con i controlli protezione disattivati

fossi in te cercherei in rete qualcosa fatta con juery e sei sicuro che sia compatibile con tutti i browser

io non ho trovato niente
 

Discussioni simili