<imput type hidden> in php

salve, avrei la necessità di passare delle informazioni che provengono da un <inpu type> nascosto...

questo perchè oltre a far visualizzare tutti i campi della tabella tramite un semplice print e $array[x].....

ho lanecessità di nasconderne uno di questi cos' da poterlo passare allo script successivo che mi permette di visualizzare proprio quel prodotto, in virtù del campo nascosto che lo uso come una "chiave" esempio:

print ("");

$dati = mysql_query ("select * from tabellax order by Id DESC");

$array = mysql_fetch_array($dati);

{

print ("$array[prodotti] <br>

<form method='POST' action='pagina_successiva.php'>

<input type='hidden' name='chiave_che_mi_prende_proprio_questo_ prodotto' value=' $array[prodotti]'

<input type='image' src='prova.gif'> 

</form> ");

}

 ?>

purtroppo ho notato che non riesco a far passare il valore del campo nascosto...cè qualche escamotaje???

GRAZIE come sempre!

inviato 10 anni fa
yusizu
X 0 X

print ("$array[prodotti] <br>

<form method='POST' action='pagina_successiva.php'>

<input type='hidden' name='chiave_che_mi_prende_proprio_questo_ prodotto' value=' $array[prodotti]'

<input type='image' src='prova.gif'>

</form> ");

manca la chiusura dell'input type hidden:

<input type='hidden' name='chiave_che_mi_prende_proprio_questo_ prodotto' value=' $array[prodotti]' >

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
modificato 10 anni fa
X 0 X

si è chiaro che il codice l'ho scritto in fretta ma, sei proprio sicuro che il campo nascosto mi permetta comunque di passare i valori tramite post all'altra pagina che si occupa di visualizzare tutto ciò che è inerente a quel record di quella tabella??

grazie

risposto 10 anni fa
yusizu
X 0 X

si è chiaro che il codice l'ho scritto in fretta ma, sei proprio sicuro che il campo nascosto mi permetta comunque di passare i valori tramite post all'altra pagina che si occupa di visualizzare tutto ciò che è inerente a quel record di quella tabella??

grazie

Si  :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ho fatto una prova in fretta e furia:

<?php
$array['prodotti'] = array(1,2,3,4,5,6,7,8,9);
if($_POST['aaa'] != "")
{
 echo "ddddddddddddddddddddddddddddddddd";
 print_r($array['prodotti']);
} 
?>

<form method="POST" action="pagina.php">
<input type='hidden' name="aaa" value="<?=$array[prodotti]; ?>">
<input type="image" src="pics/image.jpg">

</form>

Risultato:

dddddddddddddddddddddddddddddddddArray ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )

ho dichiarato un array e lo passato e come vedi me l'ha passato correttamente...

In alternativa, come ti è stato suggerito su un altro forum, puoi serializzare:

http://it.php.net/manual/it/function.serialize.php

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

approfitto della VOSTRA disponibilità per chiedervi come fare ad implementare il codice di cui abbiamo parlato con un altro pezzo di script che mi permette al submit di quella immagine di passare i valori ad una pagina di formato prestabilito il codice che utilizzo è il seguente:

ovviamente questo è un semplice collegamento ipertestuale mentre io vorrei utilizzare questa pagina per recuperare i dati provenienti dal form che ho appena passato..inoltre dovrei far scegliere la possibilità di cliccare su due pulsanti dove entrambi recuperano i valori ma, vanno su due pagine diverse

<script language="JavaScript">

function link(i){   

   if (i==1){ document.form.action='scheda_tecnica.php';return true;}

   if (i==2){ document.form.action='acquista.php';return true;}

   return false;

}

</script>

 <input type='image' src=img1.gif' alt= 'Scheda ' width='18' height='16' align='absmiddle' size='20' onclick='link(1);submit();'>

     <input type='image' src=img2.gif' alt= 'Acquista' width='22' height='16' align='absmiddle' onclick='link(2);submit();'>

questo mi permette di aprire la pagina con un formato stabilito , io dovrei averne 2 e rimandarle alle rispettive pagine che recuperano i dati dal campo nascosto!

 <a href=\"#\" onClick=\"window.open('vai.php', 'form', 'width=400,height=500')\">

spero solo abbiate capito...certo da solo non credo proprio di riuscirci!!! GRazie Infinitamente!!!!!!!!!

 

risposto 10 anni fa
yusizu
X 0 X

Scusa yusizu , non mi ero accorto che volevi passare un intero array in un campo hidden.  :crazy:

La cosa NON è possibile senza effettuare la serializzazione dell'array stesso!

P.S.: :excl: attento Lore, nel tuo esempio c'è un errore che fa credere che la tecnica funzioni!

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

scusami ma non so proprio cosa sia la serializzazione

io estraggo tutti i record di una tabella e tramite array e un order by ID li visualizzo tutti.....

fatto ciò ho la seguente necessità, cliccando sul sbmit di uno di questi record mi passa esclusivamente i dati di questo record al php che fa una select from table where "chiave" è quello che gli ho passato...così ho la sicurezza che sia proprio quel record....mi ripeto con un input type normale funziona, nascosto non lo so!

grazie

risposto 10 anni fa
yusizu
modificato 10 anni fa
X 0 X
P.S.: :excl: attento Lore, nel tuo esempio c'è un errore che fa credere che la tecnica funzioni!

Scusa Gianni,

hai perfettamente ragione...per le poche volte che ho docuto passare un array, l'ho sempre serializzato...

Infatti quando ho provato il codice che ho postato, mi sembrava strano che funzionasse...

Solo ora mi sono accorto che non facevo visualizzare quello che passavo tramite post, ma l'array che settavo una riga sopra, prciò sempre esistente...

Chiedo scusa per la svista soprattutto a yusizu spero di non avergli incasinato le idee...

Ecco cosa succede a dormire poco... :idiot:

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

La serializzazione è quel processo che permette di trasformare un'entità a più dimensioni in una ad un unica dimensione. (paura !!!).

In pratica lo scopo è prendere qualunque entità e descriverla con una sequenza di byte. Tale sequenza deve permettere comunque di risalire all'entità di partenza, attraverso un processo inverso che prende il nome di deserializzzazione.

PHP è in grado di effettuare tali trasformazioni attraverso 2 funzioni: serialize e unserialize. La prima restituisce una stringa contenente la rappresentazione dell'entità da serializzare. La seconda prende come parametro una stringa e restituisce l'entità originale.

Le entità serializzabili in PHP sono TUTTI i tipi di dato (compresi array ed oggetti) ad eccezione dei tipi "risorsa" (ad esempio i riferimenti ad un file aperto o alla connessione ad un DB)

<?php
$entita = array(1,2,4,8,16);

$serial_entita = serialize($entita);

echo "Ecco l'array serializzato: $serial_entita \n";

$unserial_entita = unserialize($serial_entita);

print_r($unserial_entita);
?>

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Gentilissimi Gianni e Lore, non vorreirompere più del dovuto, apprezzo gli sforzi ma la serializzazione che ho provato, non capisco come utilizzarla per ciò che mi serve, se non vi scoccio vi ripeto qual'è la mia esigenza e come ho proceduto fin'ora.

Allora ho una tabella con una serie di record (da inserire in modo infinito)

per cui non posso neanzhe dire selezionami il primo o l'ultimo...

io ho una pagina in php che mi stampa a video tutti i prodotti inseriti con un array (quindi può essere 1 o 1000)

sotto ognuno di questi record che stampo odevo inserire due submit che rimandano rispettivamente a due pagine:

1 richiamando proprio quel record selezionato (utilizzando magari un campo della tabella che mi fa da chiave per visualizzare il resto della scheda

2 Idem ma va su un'altra pagina

finora utilizzavo un campo text ed un submit che selezionando quel record poi inviamo ad una pagina in php

che mi faceva una select from tabella where campo = a quello dell'input della pagina precedente...

Fin qua tutto funzionava a meraviglia perchè potev avere anche 50 righe ma sempre la sicurezza di selezionare quel record.

ora con sto benedetto campo nascosto non posso farlo?

altrimenti...ma in modo molto easy come posso ovviare???

grazie infinitamente

risposto 10 anni fa
yusizu
X 0 X

Calma che mi sto confondendo  :crazy: Se ho ben capito tu hai realizzato una pagina che mostra un elenco di prodotti. Per ciascuno di questi vuoi inserire due pulsanti. Il primo che rimandi ad una pagina per l'acquisto del prodotto, il secondo che invece mostri una pagina con le specifiche del prodotto.

Esatto?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

 :police: Chiudo la discussione causa argomento duplicato:

http://www.phpnews.it/forum/index.php?topic=769.0

http://www.phpnews.it/forum/index.php?topic=768.0

:chiuso:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda