Discussione:
jquery su reddit
(troppo vecchio per rispondere)
zappa
2016-04-13 16:58:44 UTC
Permalink
Raw Message
Un mio messaggio su reddit è stato censurato perché il moderatore ha
ritenuto che fossi uno studente che cercava di copiare il compito a casa
assegnatogli dal suo insegnante.
A questo punto chiedo qui, dove sono sicuro di trovare delle persone più
intelligenti, che se non mi risponderanno sarà perché non sanno
rispondere e non perché pensano che sia un imbroglione (che non sia
molto pratico mi pare evidente; ma non ho più l'età per fare lo studente
e mi occupo di programmazione per diletto personale non avendo alcuna
attività commerciale): posso trovare da qualche parte il codice JS o
jQuery che trasforma del testo copiato da un intervallo di celle di
Excel e incollato in una textarea lo trasforma in una tabella html?
Grazie.

P.S.: riporto qui di seguito il testo integrale della risposta del
moderatore di reddit:

Hi, sorry, but I removed this post, as per the sidebar - it seems to be
a homework request. You're much better off figuring it out for yourself
- the learning process is just as important as the actual material.
Don't forget that reddit won't be there in your exam. Also, collusion is
likely against the rules at your school, if you get caught doing that,
bad things can happen.

Good luck with your studies. :)
Leonardo Serni
2016-04-13 17:11:25 UTC
Permalink
Raw Message
Post by zappa
attività commerciale): posso trovare da qualche parte il codice JS o
jQuery che trasforma del testo copiato da un intervallo di celle di
Excel e incollato in una textarea lo trasforma in una tabella html?
"Puoi trovarlo"? Forse: non ho esaminato con attenzione l'intera Internet e
in qualche pagina potrebbe pure esserci.

Se incolli del "testo" (dove per "testo" si intende ASCII, non HTML) dentro
una textarea, il gestore di clipboard di Windows te lo trasforma in stringa
tab-delimitata.

Quindi ti servirebbe:

- intercettare l'evento "paste" della textarea, che arriva nel momento
sbagliato, e quindi richiede un ritardo, che a volte sarà abbastanza
ma anche no.

$('#tuaarea').bind('paste', function() {
var ne = $(this);
function car(testo) {
// Trasformare il testo...

ne.val(nuovoTesto);
}
setTimeout(function() {
car(ne.val());
}, 250);
});

- nella funzione di caricamento testo car(), splittare il testo prima lungo
i ritorni carrello per ottenere le righe, poi lungo i tab per le celle:

function car(testo) {
var righe = testo.split(/\r\n/); // Non sono sicuro che funzioni
var tabella = $('<table>'); // Hai detto che lo volevi in jQuery...
for (var r in righe) {
var celle = righe[r].split(/\t/); // Forse.
var tr = $('<tr>');
for (var c in celle) {
tr.append($('<td>').text(celle[c]));
}
table.append(tr);
}
// Metto la tabella in qualche oggetto tipo un div.
$('#tabella').html(table.html());
}

- (importantissimo) pregare che funzioni

- siccome non funzionerà, riempire il codice di console.log() per vedere di
preciso cosa succede ai dati mentre passano.

Leonardo
--
A terrible beauty is born.
- W. B. Yeats, Easter 1916
zappa
2016-04-13 17:24:46 UTC
Permalink
Raw Message
Post by Leonardo Serni
"Puoi trovarlo"? Forse: non ho esaminato con attenzione l'intera Internet e
in qualche pagina potrebbe pure esserci.
Se incolli del "testo" (dove per "testo" si intende ASCII, non HTML) dentro
una textarea, il gestore di clipboard di Windows te lo trasforma in stringa
tab-delimitata.
- intercettare l'evento "paste" della textarea, che arriva nel momento
sbagliato, e quindi richiede un ritardo, che a volte sarà abbastanza
ma anche no.
$('#tuaarea').bind('paste', function() {
var ne = $(this);
function car(testo) {
// Trasformare il testo...
ne.val(nuovoTesto);
}
setTimeout(function() {
car(ne.val());
}, 250);
});
Se ho ben capito questo non mi serve, io pensavo alla generazione della
tabella tramite il clic su un pulsante.

Comunque grazie del resto, inizio a studiarlo.
zappa
2016-04-13 19:14:34 UTC
Permalink
Raw Message
Post by Leonardo Serni
- siccome non funzionerà, riempire il codice di console.log() per vedere di
preciso cosa succede ai dati mentre passano.
Ce l'ho fatta, grazie. :)
E vaffanculo reddit.

Loading...