Passare parametro ad un'altra pagina in base alla condizione

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Buongiorno,
ho un dubbio ragazzi.

Ho delle pagine:

pagina 1 - ho un modulo di input

PHP:
<FORM METHOD="post" ACTION="visualizzatore.php"> <!Metodo POST, le informazioni inviate da un form con il metodo POST sono invisibili agli altri e non ha limiti sulla quantità di informazioni da inviare>
	


<input type="text" name="foo" id="foo"/>
<script>
    document.getElementById("foo").focus();
</script>	

<INPUT TYPE="submit" VALUE="-">
</FORM>

pagina 2 - in cui prelevo quello che ho inserito e mandato alla pagina "visualizza.php"

PHP:
$query = "SELECT * FROM tabella WHERE campo1 = $_POST[foo]"; //mediante $_POST[foo] recupero il valore inserito nell'area di testo della pagina di provenienza. "foo" è il contenuto di name: <input type="text" name="foo" />

quindi mi seleziono tutte le colonne della "tabella" nel caso in cui "campo1 = $_POST[foo]" ovvero nel caso in cui quello che inserisco nell'area alla pagina precedente è uguale al valore nel "campo1".

Fino a qua funziona tutto regolare.

Se io volessi mettere una pagina intermedia in cui fare un controllo, per esempio: cerca quello che ti inserisco nella "pagina 1", nelle due tabelle del database, se è in una tabella collegati alla pagina "zzz", altrimenti collegati alla pagina "kkk". Tabelle che stanno nello stesso DB.

Ho fatto un semplice controllo "if":

PHP:
        if($_POST[foo] == $campo1)
        echo "articolo in tabella1";
	else if($_POST[foo] == $campo2)
	echo "articolo in tabella2";
	else echo "articolo NON trovato in elenco";

Questo controllo funziona, considerate che "campo1" e "campo2" li prelevo scorrendo tutte le righe della tabella.

Adesso cosa vorrei fare: vorrei che al posto di stampare la scritta in base all'if dove mi trovo, rimandare ad una pagina o un'altra passando anche il parametro che mi interessa quindi in questo caso "$campo1" nel primo "if" o "campo2" nel secondo "if".

Ho provato con:
PHP:
	echo ' <meta http-equiv="refresh" content="0;url=visualizzatore.php?$campo1"> ';

PHP:
echo "<form action=\"visualizzatore.php?valore=$campo1\"><INPUT type=submit value=\"INVIA\" CLASS=bottone onMouseOver=\"on('green')\" onMouseOut=\"on('blue')\")\"></form>";

Nella pagina "visualizzatore.php" ho provato a prelevare il valore passato con "$_GET[campo1]" o "$_GET['campo1']".

in definitiva nessuna delle due mi passa il contenuto.

Spero di essere stato comprensibile anche se mi viene difficile spiegarvi il problema.
 
Rettifico. Sono riuscito così:

PHP:
echo "<a href=\"visualizzatore.php?valore={$campo1}\">Link</a>";

e nella pagina "visualizzatore.php" prelevo così:

PHP:
$query = "SELECT * FROM tabella WHERE barcode = $_GET[valore]"; //mediante $_POST[foo] recupero il valore inserito nell'area di testo della pagina di provenienza. "foo" è il contenuto di name: <input type="text" name="foo" />

Adesso vorrei che non mi comparisse la scritta "Link" su cui ciliari sopra, ma che mi vada diretto.

Attendo un vostro aiuto.

Grazie
 
Risolto.


Utilizzo:

PHP:
header("refresh:0;url=visualizzatore.php?valore={$campo1}");
 
ciao
forse meglio
header("location:visualizzatore.php?valore={$campo1}");
e subito dopo l'header ti conviene exit
PHP:
<?php
//.....
header("location:visualizzatore.php?valore={$campo1}");
exit();
//...
?>
 

Discussioni simili