- Home
- Categorie
- Coding e Sistemistica
- PHP
- Link interni alla pagina con php
-
Link interni alla pagina con php
Ciao a tutti!
Ho un problema che so che può essere facilmente risolto, visto che è già stato risolto qui:novello-di-php-base-al-link-cambiare-contenuto-della-pagina.html
Ma purtroppo sono troppo nuovo alla programmazione php per capirne la risoluzione già esposta.:?
Riassumo il problema: ho una serie di link all'interno di una pagina e tramite il click su questi link devo far cambiare il contenuto di un div. allora io ho pensato di fare così per quanto riguarda i link:
<div id="menu" align="left"> <ul> <li><a href='?$id=1'>link 1<br></a></li> <li><a href='?$id=2'>link 2<br></a></li> <li><a href='?$id=3'>link 3<br></a></li> </ul> </div>
e poi nella sezione dove dovrebbe essere riportato il testo in questione:
<div id="testo"> <?php if(!isset($id)) $id = '0'; switch($_GET[$id]){ case 0: $filetesto = fopen('testi/prodotti/testoprodotti.htm', 'r'); while (!feof($filetesto)) { $line = fgets($filetesto); echo $line; } fclose($filetesto); break; case 1: $filetesto = fopen('testi/prodotti/diamant.htm', 'r'); while (!feof($filetesto)) { $line = fgets($filetesto); echo $line; } fclose($filetesto); break; ... default: $filetesto = fopen('testi/prodotti/testoprodotti.htm', 'r'); while (!feof($filetesto)) { $line = fgets($filetesto); echo $line; } fclose($filetesto); } ?> </div>
Pensando che a seconda del link cliccato mi cambiasse il testo visualizzato. Ora io so che il php viene processato al caricamento della pagina ma speravo potesse funzionare.
Qualcuno mi sa dire dove ho sbagliato? O altrimenti suggerire una soluzione diversa... Please HELP ME!!:bho:
-
Le variabili GET si passano con questo formato:
file.php?var=valore&var2=valore2Per recuperarle si usa $_GET['var']
Facendo queste 2 modifiche dovrebbe andare...
-
Perfetto risolto il problema!! Grazie Thedarkita!!
Si è venuta a verificare un altro piccolo problema però...
Vi prego non mi picchiate tutti in gruppo, sono un novellino con phpSe inserisco questo pezzo di codice:
if(!isset(id)) id = '0';
Va tutto giustamente in errore...
Parse error: parse error, expecting
T_VARIABLE' or
'$'' in c:.....\prodotti.php on line 133Se inserisco questo:
if(!isset($id)) $id = '0';
giustamente non se lo considera neanche..
Fatto sta che alla prima apertura della pagina mi da questa notifica:
Notice: Undefined index: id in c:.....\prodotti.php on line 132
Penso che dovrebbe essere una cosa di poco conto, ma secondo voi come dovrei gestirla? Grazie tante a tutti!!!
-
Prova con...
[PHP]if(!isset($_GET['id'])) { $id = 0;}[/PHP]
-
Perfetto!! Ora non da più errori!! Grazie mille ilnetsurfer!!!
Mi spiace di dover modificare il messaggio... no non funziona continua a darmi la notifica... sigh!
-
Che notice ti da adesso?
-
Prova cosi:
<?php
if(!isset($_GET['id'])){ $id = 0;}
$id = $_GET['id'];
switch($id){
case 0:
$filetesto = 'testi/prodotti/testoprodotti.htm';
include($filetesto);
break;
case 1:
$filetesto = 'testi/prodotti/diamant.htm';
include($filetesto);break;
...
default:
$filetesto = 'testi/prodotti/testoprodotti.htm';
include($filetesto);} ?>
E poi... modifica cosi il menu:
<div id="menu" align="left"> <ul> <li><a href='?id=1'>link 1<br></a></li> <li><a href='?id=2'>link 2<br></a></li> <li><a href='?id=3'>link 3<br></a></li> </ul> </div>
-
Ok bene adesso funziona Finalmente!!!
Ho fatto così:
[PHP]
@ $id = $_GET['id'];
if(!isset($id)) $id = '0';
switch($id){
[/PHP]Grazie per i suggerimenti!!!
-
la @ non fa altro che nascondere l'errore, non risolverlo prova cosi:
[php]
$id = isset($_GET['id']) ? $_GET['id'] : 1;
switch($id){
[/php]
Imposta il valore se la variabile è settata altrimenti setta 1, comunque se riscontri errori devi postare l'errore altrimenti non possiamo aiutarti...
-
Bene TheDarkIta! Ora funziona!!
Però se non ti chiedo troppo potresti spiegarmi sommariamente perchè funziona? Cioè, sempre se non è chiedere troppo, non affero l'utilizzo dei ":" e del "?" in quella posizione.Cmq grazie a tutti per l'aiuto, siete stati veramente indispensabili!!
-
Imposta il valore se la variabile è settata altrimenti setta 1
Lo avevo scritto prima...
Praticamente è come fare un if la sintassi è la seguente:
$variabile = (CONDIZIONE) ? ValoreRestituitoTrue : ValoreResistuitoFalse;Spero di averti chiarito le idee, se hai qualche perplessità chiedi pure...
-
No, nient'altro, perfettissimo e capito tutto!!!
Ogni giorno si impara qualcosa di nuovo! Grazie ancora tanto, veramente non avrei saputo come cavarmela altrimenti!!!
-
Figurati