PDA

View Full Version : [WEB] dividere testo su più pagine,come?


Roran
07-04-2011, 10:50
Ho scritto [WEB] nel titolo perchè non so quale sia il linguaggio più appropriato per fare la cosa di cui vi parlerò a breve.Sto facendo una bacheca commenti per il mio sito però vorrei trovare il modo di dividere i commenti su più pagine,non cambiando la pagina in uso,una cosa asincrona stile linguaggio ajax (per esempio i commenti per i video youtube),c'è un modo semplice per farlo?si può fare anche con solo il php?

black_wizard
07-04-2011, 11:07
php,asp etc etc con jquery o altre librerie.
Se cerchi su google ne trovi tanti di script.
Per farti un esempio..di solito io uso questo per i miei lavori quando devo fare una lista di cose divisa per pagine e funziona senza jquery.

script paginate (http://www.dynamicdrive.com/dynamicindex17/virtualpagination.htm)

Roran
07-04-2011, 12:36
php,asp etc etc con jquery o altre librerie.
Se cerchi su google ne trovi tanti di script.
Per farti un esempio..di solito io uso questo per i miei lavori quando devo fare una lista di cose divisa per pagine e funziona senza jquery.

script paginate (http://www.dynamicdrive.com/dynamicindex17/virtualpagination.htm)Da quanto mi sembra di capire questo script funziona staticamente,cioè le cose divise sono impostate dal webmaster,a me serve una cosa dinamica,per esempio ogni 10 commenti nuova pagina

black_wizard
07-04-2011, 15:05
non capisco le tue perplessità.
Lo script che ti ho linkato fa esattamente quello che ti serve.
In poche parole se tu hai 100 commenti per dire...tu con quello script puoi dirgli che ogni 10 div dove ogni div racchiude un commento è una pagina.
Perciò su 100 commenti ci saranno 10 pagine, senza ricaricare la pagina.

Ovviamente farai uscire dinamicamente(tramite database) tutti i commenti che hai e poi lo script, impostandolo a 10 commenti per pagina, farà la paginazione.

Roran
07-04-2011, 17:26
non capisco le tue perplessità.
Lo script che ti ho linkato fa esattamente quello che ti serve.
In poche parole se tu hai 100 commenti per dire...tu con quello script puoi dirgli che ogni 10 div dove ogni div racchiude un commento è una pagina.
Perciò su 100 commenti ci saranno 10 pagine, senza ricaricare la pagina.

Ovviamente farai uscire dinamicamente(tramite database) tutti i commenti che hai e poi lo script, impostandolo a 10 commenti per pagina, farà la paginazione.ah ok,avevo capito male,comunque io non uso database,carico i commenti da un file di testo in un array di oggetti di tipo commento (ovviamente è una classe che ho scritto io),praticamente utilizzo una lista di commenti

Darecon
07-04-2011, 17:54
ah ok,avevo capito male,comunque io non uso database,carico i commenti da un file di testo in un array di oggetti di tipo commento (ovviamente è una classe che ho scritto io),praticamente utilizzo una lista di commenti

Non cambia assolutamente niente, basta che "generi" i div dal codice.. :D

Roran
07-04-2011, 21:02
ho un problema,come carico lo script javascript da un file php? (non è il file di index)

black_wizard
07-04-2011, 23:26
beh il metodo più semplice è deccomentare il php, richiamare il javascript e riaprire il php.
Es.

?>
<head>
<script>
<script src="paginate.js" type="text/javascript"></script>
</script>
</head>
<?php

Roran
08-04-2011, 09:41
beh il metodo più semplice è deccomentare il php, richiamare il javascript e riaprire il php.
Es.

?>
<head>
<script>
<script src="paginate.js" type="text/javascript"></script>
</script>
</head>
<?php
Si ma io ho anche altri pezzi di php già decommentati perchè ho inserito pezzi di html e css,non ho ancora utilizzato il tag head fino ad ora,posso comunque procedere come mi hai suggerito in qualsiasi parte del file o devo rispettare l'ordine delle tag html e quindi aggiungere quella parte di codice prima delle altre?

black_wizard
08-04-2011, 13:01
per regola si dovrebbe mettere tutti i file javascript nella tag head a inizio pagina ma è solo una regola di buona programmazione.
Alla fine puoi chiamarlo dovunque..puoi mettere anche altri tag head a metà pagina.

Roran
09-04-2011, 15:58
per regola si dovrebbe mettere tutti i file javascript nella tag head a inizio pagina ma è solo una regola di buona programmazione.
Alla fine puoi chiamarlo dovunque..puoi mettere anche altri tag head a metà pagina.
ho un altro problema,io devo applicare la paginazione ad un tabella "dinamica" formata in questo modo


echo "<center><table ID=table border=0 frame=void cellpadding=5 cellspacing=0>";
foreach($this->listacommenti as $commento){
echo "<td>";
echo"<tr>";
echo "<td class=\"td_header\" valign=\"center\" align=\"left\">";
if($n==1) echo "<input type = checkbox name=\"post[$cont]\" value=\"$cont\">";
echo "<B> #$cont ".$commento->nick."</B> ".Language::$GSbook_wrote.":<BR></td></tr>";
echo "<tr><td class=\"td\" valign=\"center\">«".$commento->comm."» "."<font size=1><b><BR /><BR /><center>".$commento->data."</center></b></font><BR /></td>";
echo "</tr></td>";
$cont++;
}
echo "</table></center>";


come lo adeguo lo script che mi hai consigliato?

black_wizard
09-04-2011, 16:35
beh facevi prima ad adeguare il tuo script sostituendo le tabelle con i div.
cmq la cosa più saggia sarebbe fare


foreach($this->listacommenti as $commento){
echo '<div class="virtualpage hidepiece">';
echo "<table ID=table border=0 frame=void cellpadding=5 cellspacing=0>";
echo"<tr>";
echo "<td class=\"td_header\" valign=\"center\" align=\"left\">";
if($n==1) echo "<input type = checkbox name=\"post[$cont]\" value=\"$cont\">";
echo "<B> #$cont ".$commento->nick."</B> ".Language::$GSbook_wrote.":<BR></td></tr>";
echo "<tr><td class=\"td\" valign=\"center\">«".$commento->comm."» "."<font size=1><b><BR /><BR /><center>".$commento->data."</center></b></font><BR /></td>";
echo "</tr>";
echo "</table>";
echo "</div>";
$cont++;
}



oppure poteri mettere la classe class="virtualpage hidepiece" dentro un tr ma non so se funzionava nello script anche se cambiavi il parametro piececontainer: 'div', a piececontainer: 'tr',

Roran
09-04-2011, 17:43
beh facevi prima ad adeguare il tuo script sostituendo le tabelle con i div.
cmq la cosa più saggia sarebbe fare


foreach($this->listacommenti as $commento){
echo '<div class="virtualpage hidepiece">';
echo "<table ID=table border=0 frame=void cellpadding=5 cellspacing=0>";
echo"<tr>";
echo "<td class=\"td_header\" valign=\"center\" align=\"left\">";
if($n==1) echo "<input type = checkbox name=\"post[$cont]\" value=\"$cont\">";
echo "<B> #$cont ".$commento->nick."</B> ".Language::$GSbook_wrote.":<BR></td></tr>";
echo "<tr><td class=\"td\" valign=\"center\">«".$commento->comm."» "."<font size=1><b><BR /><BR /><center>".$commento->data."</center></b></font><BR /></td>";
echo "</tr>";
echo "</table>";
echo "</div>";
$cont++;
}



oppure poteri mettere la classe class="virtualpage hidepiece" dentro un tr ma non so se funzionava nello script anche se cambiavi il parametro piececontainer: 'div', a piececontainer: 'tr',avevo provato con il td ma non sembrava funzionare.Per quanto riguarda il pre-tabella e il dopo-tabella più l'inizializzazione dello script come faccio?

EDIT: sto notando ora che hai messo il tag table dentro il foreach,intendi fare così o ti sei sbagliato nel modificare il codice?

black_wizard
09-04-2011, 19:07
beh ovviamente la classe deve essere dentro il foreach perchè ogni commento deve avere quella classe.
Ho messo la table dentro il foreach perchè è brutto e senza senso fare la table fuori e poi aprire il div e poi tr e td...sarebbe assurdo.
La cosa migliore era trasformare la table commenti in un unico div.
Io ti ho proposto una versione alternativa con quel codice senza rifare la tabella.

Roran
10-04-2011, 15:49
beh ovviamente la classe deve essere dentro il foreach perchè ogni commento deve avere quella classe.
Ho messo la table dentro il foreach perchè è brutto e senza senso fare la table fuori e poi aprire il div e poi tr e td...sarebbe assurdo.
La cosa migliore era trasformare la table commenti in un unico div.
Io ti ho proposto una versione alternativa con quel codice senza rifare la tabella.dopo svariati tentativi ci sono riuscito,era anche colpa del percorso dello script,non mi leggeva il percorso impostato da una variabile php.Grazie dell'aiuto