Come estarre da una tabella html i valori di una riga selezionata

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
[RISOLTO] Come estrarre da una tabella html i valori di una riga selezionata

Buongiorno ragazzi.
Sono un nuovo iscritto ma ho usufruito del vostro aiuto in parecchie circostanze.
Questa volta però sono costretto a disturbarvi per una robaccia che ho la sensazione che sia una stupidata ma sulla quale mi sono incagliato da ieri mattina.

Cerco di spiegarvi, situazione attuale:
ho uno script php che estrae dati da una tabella mysql,
lo script crea una tabella html normalissima e riporta a video tutti i dati estratti.

azione:
- vorrei permettere all'utente di selezionare una riga cliccandoci sopra,
- 'aprire' un div che funzioni come una sorta di popup,
- riportare i singoli valori delle celle della riga selezionata in altrettanti campi di testo

problema:
siccome colorare la riga selezionata e aprire un div/popup non sono un problema, la mia richiesta riguarda soltanto l'estrazione dei dati dalla tabella html

domanda:
come faccio a estrarre, da una tabella html creata da uno script php, i singoli valori di una riga selezionata da un click del mouse?

Spero di essermi fatto capire, vi ringrazio sin da ora per l'aiuto che mi vorrete dare.

D.
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se vuoi rendere cliccabile una riga della tabella puoi provare

HTML:
<table width="100%"  border="0" cellspacing="2" cellpadding="0">
  <tr>
    <td width="100%" bgcolor="#CCCCCC" onClick='javascript:window.location.href="finestra.php?id=quello_da_mysql_1";'>clicca sulla riga 1</td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#FFFF00" onClick='javascript:window.location.href="finestra.php?id=quello_da_mysql_2";'>clicca sulla riga 2</td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#CCCCCC" onClick='javascript:window.location.href="finestra.php?id=quello_da_mysql_3";'>clicca sulla riga 3</td>
  </tr>
  <!-- ecc...ecc.... -->
</table>

poi ti fai la pagina finestra.php, e con il get ti ricavi il valore
 

genoma

Nuovo Utente
11 Ott 2010
8
0
0
Bologna
Per avere un popup vero e proprio io ti suggerisco di dare un occhio a Colorbox e di integrarlo con un po di php, come ti ha suggerito borgo, un $_GET ed una query nella pagina successiva.

Ho utilizzato un metodo simile per fare un carrello in un sito di e-commerce.

Dacci un occhio e vedi se fa per te :)
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
Grazie ragazzi, siete fantastici!

@genoma ti ringrazio davvero, ogni informazione risulta utile! Purtroppo però il problema non è nel "popup" che con un piccolo javascript e del css3 ho risolto! ho scritto popup tra virgolette perchè in realtà non si tratta di un vero e proprio popup ma di 2 div che si sovrappongono a tutti gli altri: uno opaco di sfondo e uno per la finestra vera e propria.
vengono visualizzati entrambi solo al clic della tabella!

@borgo per i motivi detti a genoma, borgo, a una prima lettura non so se il tuo suggerimento riuscirò a utilizzarlo! cmq mi riservo la risposta a tra un pò, vado a smanettarci!

Il GRAZIE però è sincero e vale già da adesso!

Seguiranno aggiornamenti.

D.
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
Eccoci!

e come immaginavo molto probabilmente non mi sono fatto capire!
Spero di non abusare della vostra pazienza e provo a rispiegarmi! ;)

sono nella situazione in cui ho
una tabella html

HTML:
<table border="0" cellspacing="0" cellpadding="0" class="Tbl">
<thead>
<tr>
<th class="Tbl_Header">Cod. Lead</th>
<th class="Tbl_Header">Lead</th>
<th class="Tbl_Header">Ult. Modifica</th>
</tr>
</thead>

<tbody>

all'interno del tag <tbody> c'è lo script php che la crea e la popola collegandosi a mysql:

PHP:
<?php
	$connect=mysql_connect("$host", "$username", "$password")or die("non riesco a connettermi a SQL"); 
	mysql_select_db("$db_name")or die("non riesco a selezionare il db");

	$sql = "select * from $tbl_anagrafica";
	$result = mysql_query($sql);
	
             $quanterighe = mysql_num_rows($result);
        for($a=0; $a<$quanterighe; $a++)
        {
			
			$rs = mysql_fetch_row($result);

			$codice = $rs[0];

			$nome = $rs[1];
			$cognome = $rs[2];

			$ultmod = $rs[3];

			echo"<tr>";
			echo"<td> $codice </td>";
			echo"<td> $nome $cognome </td>";
			echo"<td> $ultmod </td>";
			echo"</tr>";
        }
    echo"<script>ColoraRighe()</script>";
    mysql_close($connect);
?>

l'ultimo script richiamato nel php "ColoraRighe" è un piccolissimo javascript che colora le righe in maniera alterna!

Fin qui tutto bene: lo script funziona e la tabella html si popola di tutti gli elementi di cui è composta la tabella in mysql. Tutto si posiziona in perfetto ordine sotto le colonne impostate dal codice in html e le righe vengono alternate.
Con i css ho anche implementato la riga colorata diversamente al passaggio del mouse.
Tutto ok!

Poi;
Ho reso la tabella cliccabile con un javascript che legge tutto il codice html,
individua gli elementi con class="Tbl" (quindi evidentemente la mia tabella, come si vede dal codice postato sopra) e al clic rende visibili 2 div finora impostati su 'display:none' tramite css.
un div avrà la struttura di una finestra tipo popup (ma che popup ovviamente non è);
tutti gli elementi di questo div saranno di class="popup"
e l'altro servirà come sfondo a coprire la parte della finestra con la tabella (id="background")!

Codice:
<script type="text/javascript"> 
$(document).ready(function () {
	$(".Tbl").click(function(){
	$(".popup").fadeIn("slow");
	$("#background").css("display", "block");
<!-- [...]
</script>

Anche qui tutto funziona: al clic sulla tabella si apre il div che fa le veci di un popup!

Vista la situazione, quel che dovrei essere capace di scrivere in codice e invece non so fare (e per il quale chiedo il vostro aiuto!) e fare in modo che cliccando su una riga della tabella (oltre a far apparire quello che già appare come vi ho spiegato sopra), il clic riesca ad estrapolare i valori della tabella: colonna1 'codice', colonna2 'nome+cognome', colonna3 'ultima modifica';
in modo da permettermi di prendere questi valori e portarli in 3 campi di testo che sono nella struttura del div usato come "popup".
Siccome si tratta di un div che è nella stessa pagina della tabella, l'unico problema che non riesco a risolvere e l'estrapolazione dei dati dalla tabella al clic sulla riga!

Vi prego, insultatemi pure se ancora una volta non sono stato in grado di spiegarmi! :p

Attendo vostre nuove e non smetterò di ringraziarvi al limite del lecchinaggio!

Grazie davvero.

D.
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
Ciao a tutti.

Faccio un ultimo tentativo prima di studiare un nuovo approccio perchè da solo non riesco a venirne fuori.

Se qualcuno di voi sapesse e potesse anche solo indirizzarmi ve ne sarei grato.
Altrimenti, ve ne sarei cmq visto che di aiuto me ne avete già dato altre volte :)

Grazie
D.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
da quello che ho capito tu vuoi ottenere qualcosa del genere
cioè cliccando (es) su Sofonisba ti si apre la finestra
finestra.jpg

giusto?
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
ciao
da quello che ho capito tu vuoi ottenere qualcosa del genere
cioè cliccando (es) su Sofonisba ti si apre la finestra
finestra.jpg

giusto?

ciao borgo
:love::love:

siiiiii :mavieni:
anche se piuttosto che andare in un'altra finestra, rimango sulla stessa pagina e rendo visibili dei div che tenevo nascosti nei quali ci sono i campi di testo!!

quindi, semplificando, cliccando sulla riga della tabella i valori vanno in campi di testo della stessa pagina!!

è un codice tanto complesso?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
io, per non rendermi la vita complicata, aprirei la finestra con un a href target _blank, poi nella finestra metterie in piu un window close (js), ma quasi solo per bellezza
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
ciao
io, per non rendermi la vita complicata, aprirei la finestra con un a href target _blank, poi nella finestra metterie in piu un window close (js), ma quasi solo per bellezza

potrebbe essere un'idea, ma qualunque scelta faccia,
mi rimane sempre l'incapacità di recuperare i dati dalla tabella :crying:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
io farei semplicemente così
senza stare a preoccuparmi di rendere cliccabile tutta la riga, tanto basta che sia cliccabile un qualcosa
PHP:
<?php
//ecc...
echo"<tr>";
	//se vuoi con i css togli la sottilinetura a $codice
	echo"<td><a href=\"finestra.php?cod=$codice\" target=\"_blank\">$codice</a></td>";
	echo"<td> $nome $cognome </td>"; 
    echo"<td> $ultmod </td>"; 
echo"</tr>";
//ecc...
?>
se vuoi renderli tutti cliccabili basta che tu ripeta l'a href su tutti i td
poi farei la pagina finestra.php

PHP:
<?php
if(isset($_GET['cod'])){
	$codice=htmlspecialchars($_GET['cod']);
	//farei la select con WHERE codice='$codice';
	//con mysql_fetch_array popolerei il form
	// e farei quello che devi fare con i dati del form, da quello che ho capito li vuoi modificare

}else{
	//chiusura automatica della finestra
}
?>
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
Ciao borgo e ciao a tutti!

caro borgo, GRAZIE!
ho lavorato sulla tua idea e inizio a vedere qualcosa di simile a quanto voglio realizzare.
Sto cercando di evitare di aprire una nuova finestra e quindi ho dovuto fare un pò di modifiche di cui eventualmente vi renderò partecipi, magari aiutiamo qualcuno!

Tuttavia non ho ancora risolto del tutto il problema che nel frattempo è cambiato!

mi spiego:
la situazione attuale prevede che l'utente possa selezionare una voce nella tabella ($codice) e che al click su questa il valore stesso venga estratto e portato sulla barra degli indirizzi da cui poi è possibile recuperarlo con $_GET e farne quel che serve!
Ho utilizzato la variabile $_SERVER['PHP_SELF'] in modo da non cambiare pagina al click.

Ora avrei bisogno che parta una funzione jquery nel momento in cui si ricarica la pagina con il valore estratto (che come detto è nella barra degli indirizzi). A che evento potrei associare tale chiamata?

Grazie ancora a tutti e soprattutto a borgo!

D.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa hai scritto una cosa del genere? cioè cliccando su $codice rimandi alla stessa pagina?
PHP:
<?php
//....
echo"<td><a href=\"".$_SERVER['PHP_SELF']."?cod=$codice\" target=\"_blank\">$codice</a></td>"; 
//...
?>
puo sempre prelavare il get come ti ho detto e fare la query
PHP:
<?php 
if(isset($_GET['cod'])){ 
    $codice=htmlspecialchars($_GET['cod']); 
    //fai la query
	$quey=mysql_query("SELECT * FROM tabella WHERE cod='$codice'");
	//e estrai
	$riga=mysql_fetch_array($query);
	//puoi uscire da php per fare il form
?>
<form name="form1" method="post" action="dove_vuoi_mandarlo">
  Cod. Laead
    <input name="codice" type="text" id="codice" value="<?php echo $riga['cod']; ?>">
    <br>
  Lead 
  <input name="lead" type="text" id="lead" value="<?php echo $riga['lead']; ?>">
  <br>
  Ult.Modifica 
  <input name="modifica" type="text" id="modifica" value="<?php echo $riga['modifica']; ?>">
  <p>
    <input type="submit" name="Submit" value="Invia">
</p>
</form>
<?php
// poi rientrare
}else{ 
    //chiusura della finestra 
} 
?>
qesto è quello che credo di aver capito che vuoi fare
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
borgo sei sempre gentilissimo!
spero di non abusare troppo della tua pazienza!

questo è quello che credo di aver capito che vuoi fare

è esattamente quello che avrei dovuto fare e ho fatto!

Come però ti accennavo prima, il mio problema adesso è un altro:
non vorrei utilizzare il target=_blank e vorrei invece continuare ad affidarmi ai miei div "display=none" che con una funzioncina rendo visualizzabili e mi fungono da popup senza realmente esserlo (così nn apro nuove finestre!)

per poterlo fare ho bisogno di chiamare una funzione jquery (che ho già!) dopo aver mandato il get sulla barra degli indirizzi.

-clicco sulla cella linkabile
-spedisco il valore con get sulla barra degli indirizzi
-faccio partire la funzione jquery

A quale evento posso associare la funzione per poterla chiamare?
oppure: come faccio a chiamare la funzione dopo il click e dopo aver spedito il get lassù?


ho fatto un pò di prova ma,
se associo la funzione jquery al load o al ready, ovviamente, la funzione viene chiamata all'apertura della pagina;
se invece associo la funzione all'onclick della cella linkabile in questo modo
PHP:
echo"<td><a href=\"".$_SERVER['PHP_SELF']."?cod=$codice\" onclick=\"Popup()\" >$codice</a></td>";
al click immediatamente fa partire la funzione [e quindi mi "apre il div/popup"], solo dopo manda il cod sulla barra degli indirizzi ricaricando la pagina [e chiudendomi il "div/popup"].

dovrebbe fare il contrario: prima manda il cod, poi fa partire la funzione.
come posso fare?

Un enorme GRAZIE.

D.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a fare in questo modo (prima togli quel onclik dal link):
PHP:
<?php
$visibilita="hidden"; 
if(isset($_GET['cod'])){  
    $visibilita="visible"; 
	$codice=htmlspecialchars($_GET['cod']);  
    //fai la query 
    $quey=mysql_query("SELECT * FROM tabella WHERE cod='$codice'"); 
    //e estrai 
    $riga=mysql_fetch_array($query); 
    //puoi uscire da php per fare il form
	//qui $visibilia == visible
	echo "<div class=\"pinco_pallo\" style=\"visibility: $visibilita \">";
?> 
<form name="form1" method="post" action="dove_vuoi_mandarlo"> 
  Cod. Laead 
    <input name="codice" type="text" id="codice" value="<?php echo $riga['cod']; ?>"> 
    <br> 
  Lead  
  <input name="lead" type="text" id="lead" value="<?php echo $riga['lead']; ?>"> 
  <br> 
  Ult.Modifica  
  <input name="modifica" type="text" id="modifica" value="<?php echo $riga['modifica']; ?>"> 
  <p> 
    <input type="submit" name="Submit" value="Invia"> 
</p> 
</form> 
<?php 
// poi rientrare 
echo "</div>";
}else{  
    //quì $visibilita == hidden
	echo "<div class=\"pinco_pallo\" style=\"visibility: $visibilita \">&nbsp;</div>";
}  
?>
con class pinco_pallo definisci le misure, posizione, z-index ecc... del div
non l'ho provato, ma forse funzia
 

Mr.Deeds

Nuovo Utente
12 Ott 2010
9
0
0
Siamo finalmente arrivati alla conclusione!

e quindi riassumo:
ho uno script javascript/jquery che ho chiamato Popup():
grazie a jquery e i css visualizzo dei div che sembrano un popup che al caricamento della pagina sono a display=none

ho una tabella in html

ho uno script php
che si connette al db mysql e recupera certi dati da certe tabelle
un ciclo for popola la tabella.

grazie a borgo ( ;) ) rendo cliccabile uno (o tutti!) i valori della tabella
punto l'a href alla pagina stessa in cui mi trovo e 'mando' il valore cliccato nella barra degli indirizzi

PHP:
<?php 
//... 
echo"<tr>"; 
echo"<td><a href=\"".$_SERVER['PHP_SELF']."?cod=$codice\">$codice</a></td>";    echo"<td> $nome $cognome </td>";  
echo"<td> $ultmod </td>";  
echo"</tr>"; 
//... 
?>

nelle parti di codice dove ci sono i div che verranno resi visibili grazie alla funzione
Popup() ho inserito il codice seguente

PHP:
<?php
if(isset($_GET['cod'])){ 
    $codice=htmlspecialchars($_GET['cod']); 
echo "<script language=\"javascript\">"; 
echo "Popup();"; 
echo "</script>";
} 
?>

è solo qui che richiamo la funzione!
in modo da far apparire i div quando nella barra degli indirizzi del browser c'è già il valore che mi interessa.

A questo punto tutto diventa facile: richiamo il valore su un campo di testo
Codice:
<input type="text" id="codicerichiamato" value="<? echo($codice); ?>" />
e ho una chiave con la quale fare tutte le query che desidero!

Un grazie enorme a borgo e allo spazio concessoci da mr.webmaster.
Non abbondanatemi che sicuramente avrò bisogno ancora di voi!

GRAZIE GRAZIE GRAZIE

D.
 
Discussioni simili
Autore Titolo Forum Risposte Data
P C# Salvare una colonna del DataGridView XML 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
M Leggere in un report il valore di una casella combinata di una maschera Database 0
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
S [VB.NET]: Coordinate immagini dentro una PictureBox Visual Basic 0
I stampare una stringa echo PHP 2
MarcoGrazia Riprendere una sessione interrotta PHP 0
L Rendere una parte trasparente Photoshop 3
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
K Visualizzare del html responsive in una Webview Sviluppo app per Android 0
otto9due Ordinare option di una select Javascript 5
N Come si crea una variabile dinamica da incrementare? Javascript 1
L Eliminazione di una pagina dalla gallery SEO e Posizionamento 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
L Riempimento di una tabella al click di un bottone Javascript 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
A media degli elementi estratti da una query MySQL 0
spider81man Eliminare primo ed ultimo carattere di una colonna MySQL 0
pacemattia408 disattivazione di una function Javascript 4
G Eliminare l'effetto refresh di una pagina internet PHP 8
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
M Select Option dentro una Table jQuery 2
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
E Scrivere una data corrente in un pdf PHP 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
I Assegnare dati fetch request ad una variabile globale Javascript 0
Shyson Puntare ad una sotto directory WordPress 3
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
S Selezionare ultimo record di una sotto query MySQL 27
V Query per una somma PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
W visualizzare solo file html e sottocartelle di una cartella PHP 1
W Elenco dei link del file presenti in una cartella PHP 2
R Mettere in sicurezza una comunicazione .NET Framework 0
L Creare una forma geometrica Photoshop 1
G Casella combinata in una query MS Access 4
voldemort Cos'è una SCRL? Che tipo di società è?? Leggi, Normative e Fisco 1
F Funzione Glob - ricerca file contenente una parola PHP 1
felino [EXCEL] Conteggio ore all'interno di una settimana Windows e Software 7
Y cambiare sfondo di una pagina Javascript 1
Y Vorrei selezionare un colore di sfondo per una pagina web Javascript 0
S Apertura in una nuova pagina PHP 6
S impostare un testo e una img nella stessa riga con jsPDF Javascript 0
F Prendere contenuti da una tabella PHP 4
B Stampare una porzione della pagina PHP 0
D assegnare risultato di una jquery ad una text Javascript 2

Discussioni simili