Javascript e php mostra/nascondi div

LaKanka

Utente Attivo
29 Ago 2008
166
0
0
Ciao a tutti!
Ho un problema a cui non trovo soluzione:hammer:
ho la pagina ricerca.php che contiene una lista di news che vengono visualizzate con tabelle, 10 per pagina (utilizzo una funzione che chiamo paginator())...
La query di ricerca devo ordinarla con rand()... e da qua non si scappa!!
Nella tabella dove visualizzo la news non pubblico tutto l'articolo, ma solo i primi 200 caratteri... poi visualizzo un link [leggi+] che mi richiama sempre la pagina ricerca.php, ma con variabile $_GET['leggi']=$id_news...
così quando la pagina si ricarica faccio un controllo all'interno di ogni tabella dove guardo se $_GET['leggi'] corrisponde all'id della news... e se corrisponde visualizzo tutta la descrizione....

ora vi posto la parte in questione
ricerca.php
HTML:
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr><td><?php echo $news->titolo; ?></td></tr>
<tr><td><p class="carattere_sito">[B]<?php if($_GET['leggi']!=$news->id) {
$descrizione= substr($news->descrizione,0,200);
echo $descrizione."...  "; ?><a href="ricerca.php?leggi=<?php echo $news->id; ?>&page=<?php echo $page; ?>#<?php echo $news->id; ?>">[+Leggi]</a>  <?php } else echo $news->descrizione; ?>[/B]</p>
   </td></tr>
</table>

il problema è che quando richiamo la pag ricerca.php nonostante la query sia esattamente la stessa e la pagina pure, c'è la funzione rand() nell'order by della query che non mi permette di visualizzare la news nella stessa posizione...
quindi pensavo di utilizzare un javascript che mi permettesse di visualizzare un div nascosto che mi contenga la descrizione completa senza ricaricare la pagina....
Ma qui sorge il vero problema.... ogni volta che viene cliccato [leggi+] e quindi che viene visualizzata la descrizione completa devo inserire un record nella tabella del DB "click" con l'id della news è l'ora in cui è stata vista.... ma non è impossibile se non ricarico la pagina!!!
Aiutoo!!!
 
ma non ti conviene inserire una condizione che, se l'invio avviene da ricerca.php, non ti mette il rand nella query?
 
Ma l'ordine dell'elenco cambierebbe lo stesso...
Facciamo finta che ne visualizzo 5 per pagina...
Parto con la prima query con rand() e mi esce a pag 1
44-77-8-5-66
a pag 2
88-4-9-22-11

Se mi trovo a pag 2 e clicco sul leggi del 22:
se faccio come dici ricaricando la stessa pagina senza rand() viene fuori una cosa ancora più diversa da quella precedente, anzi nell'elenco il mio 22 non c'è proprio più:
ricarico pag 2 senza rand():
44-66-77-88-99

Scusa, forse non mi ero spiegata bene... ma è proprio questo il mio problema.... non trovo il modo di riprodurre lo stesso identico ordine se ricarico la pagina!!
Per questo cercavo una soluzione nel javascript.... ma non sono molto pratica di quel linguaggio e non so nemmeno quali possibilità mi possa dare a questo punto...
 
Ultima modifica:
Ecco uno spiraglio di luce...:eek:
Però le jquery le ho utilizzate al massimo per evidenziare determinate parole all'interno di un div... come facco ad integrare il codice con php...
scusa ma le jquery le ho utilizzate moooooolto POCO!!
Ho cercato in rete e non ho ancora trovato qualcosa che mi aiutasse...

Un esempio pratico??
 
Guarda... per ora me la sono studiata così:
all'inserimento della news utilizzo questa funzione che genera password casuali:
PHP:
<?php
function getPassword($length, $caps, $num, $special) {
    $ncaps = "abcdefghilmnopqrstuvzxwkjy";
    $dcaps = "ABCDEFGHILMNOPQRSTUVZXWKJY";
    $dnum = "1234567890";
    $dspecial = "!£$%&/()=?^;:_,.-@#][{}";
   
    $dict = $ncaps;
    if($caps)
        $dict .= $dcaps;
    if($num)
        $dict .= $dnum;
    if($special)
        $dict .= $dspecial;
       
    $pgen = str_shuffle($dict);
   
    return substr($pgen, 0, $length);
}?>

Inserisco la stringa $rand nella tabella del DB
PHP:
<?php $rand=getPassword(10, true, true, true);
$s_sql = "INSERT INTO news (id_registrato, titolo, descrizione, data_inserimento, rand) VALUES(" 
		.sql_numeric(trim($id)) .", "
		.sql_string(trim($titolo)) .", "
		.sql_string(trim($descrizione)) .", "
		.sql_string(trim($data)) .", "
		.sql_string(trim($rand)) ")";
$row_set = mysql_query($s_sql, $conn) or die("Errore nella query di inserimento: ". mysql_error());

La query senza la funzione order by rand()... ma utilizzando il campo rand del mio DB:
PHP:
<?php 
$query_ricerca= "select * from news order by rand";
Intanto....
:fonzie:
 

Discussioni simili