- Home
- Categorie
- Coding e Sistemistica
- Coding
- form, tabelle, php
-
mi ci sono dedicato inutilmente... sono arrivato allo stesso punto di prima con codice diverso...
il problema è che non mi scrive nulla sul file di sessione se inserisco
$nomeVariabile='cozze', poi al ciclo dopo $nomeVariabile='scampi'
$_SESSION[$nomeVariabile]=tot.spero di essere stato comprensibile...
-
mi sembra incredibile...
ho aggiunto questo codice all'inizio del documento:
<? //apertura della variabile di sessione
session_start();
if (isset($_POST['codiceProdotto'])) {
$codiceRichiesta=$_POST['codiceProdotto'];
$quantitaDesiderata=$_POST['quantita'];
$_SESSION[$codiceRichiesta]=$quantitaDesiderata;
echo $_SESSION[$codiceRichiesta];
}
?>l'istruzione echo stampa effettivamente il contenuto... ma sul file di sessione non esiste!!! e quindi funziona esattamente come prima (non ha memoria, diciamo...)
-
ho fatto circa 8500 tentativi...
se tento di scrivere su $_SESSION['qualsiasi'] PRIMA di $_SESSION['qualsiasi']=$quantitaDesiderata; , scrive effettivamente sul file di sessione... ma DOPO non funziona più!
che non si possa inserire su $_SESSION un valore preso da un form mi sembra strano!
-
print_r($_SESSION) che ti da?
-
nel caso io inserisca 56,
Array ( [1] => 56 )
però il file continua ad essere vuoto.
-
Non funziona perché tu gli ridai il valore di post.
Devi fare in modo che controlli se il valore cambi o no e comportarti di conseguenza con la variabile di sessione.
Senza fare prove a caso, prova a segnarti mentalmente o su un pezzo di carta, cosa vuoi fare.
Poi ragiona e vedi cosa fare...butto lì:
passi il valore con post.
però ogni volta che aggiorni passi un valore, ergo devi riuscire a capire quando quel valore deve esser considerato e quando meno.
puoi farlo leggendo il valore del pulsante aggiorna che usiOppure devi popolare bene il form.
2 vie. scegli tu.
Poi ti memorizzi i valori.
Credimi: non è complicato, solo occorre pazienza per evitare errori di logica.
-
non capisco... lo schema dovrebbe essere questo:
1: prende il codice del prodotto da aggiornare e lo mette COME CHIAVE in $_SESSION[' ']
2: prende il valore inserito nel form e lo mette come valore in $_SESSION[' ']3: verifico che il valore del prodotto da aggiornare sia uguale a quello del prodotto che sto inserendo in tabella; se sì, calcolo il nuovo importo; se no, l'importo è uguale a 0.
se mi scrivesse su questo benedetto $_SESSION[$codiceRichiesta] funzionerebbe!
-
ho trovato!!
$_SESSION['5'] NON FUNZIONA! (http://it.php.net/manual/it/ref.session.php)
quindi ho messo $_SESSION[$nomeProdotto]... ora sul file di sessione mi scrive tutto... devo solo riuscire per bene a far funzionare gli if...
grazie mille!
-
ora funzionerebbe perfettamente... peccato che inviando il nome del prodotto tramite un campo input nascosto, non invia il nome completo, se ci sono degli spazi!!!
esempio:
$nomeProdotto='cozze alla marinara';<form method="POST" action="negozio.php" name="$codice">
<INPUT TYPE='HIDDEN' NAME='nomeProdotto'VALUE=$nomeProdotto>ma incredibilmente...
$_POST['nomeProdotto']=='cozze';
è una follia!!!:x certo, potrei risolvere chiamando tutti i prodotti con un nome senza spazi... ma non è elegante ;)!
qualcuno ne sa qualcosa? grazie mille in anticipo...
-
risolto!!
ho diviso $nomeProdotto con explode(); e prendo solo il primo elemento dell'array per il confronto... a posto!
-
Ciao, se hai risolto così ok:bho:, ma secondo me quando devi stampare una variabile php in un form html ti converebbe fare value=<?=$nomeprodotto;?>
.Spero di nnn averti confuso o di nn aver detto una cavolata
-
mhm... non so, ora provo...
ma, pensavo. non può essere che il metodo POST del form invii solo la prima parola dello spazio HIDDEN... invierà forse un array? come fare a capirlo?
thanks...
-
Sir Fabio ho provato anche come dici tu, ma niente...
facendo alcune prove ho scoperto che se si inserisce come value di un form una variabile php, se questa contiene degli spazi viene divisa!
es:<?
$ciao="ciao a tutti";
?><form name='form' action='Document1.php' method='POST'>
<input type='text' name='testo' value=<?=$ciao;?>><input type='submit' value='ok'></form>
<?if (isset ($_POST['testo'])){
echo $HTTP_POST_VARS['testo'];
}
?>il valore dell'input type text sarà solo "ciao"...
se io aggiungessi " a tutti" e lo inviassi, riceverei la stringa completa...che fare?
-
ho risolto:
<?
$ciao="ciao a tutti";
?>
<form name='form' action='giorgiotave.php' method='GET'>
<p>
<input type='text' name='testo' value='<?=$ciao;?>'>
<input type='submit' value='ok'>
</p></form>
<?
if (isset ($_REQUEST['testo'])){
echo $_REQUEST['testo'];
}
?>
-
Ho Risolto:
<?
$ciao="ciao a tutti";
?>
<form name='form' action='giorgiotave.php' method='GET'>
<p>
<input type='text' name='testo' value='<?=$ciao;?>'>
<input type='submit' value='ok'>
</p></form>
<?
if (isset ($_REQUEST['testo'])){
echo $_REQUEST['testo'];
}
?>Nei form il valore di una chiave deve sempre essere contenuto tra ''. Poi ti consiglio l'uso di $_REQUEST, in quanto accetta sia GET che POST, così potresti evitare frustranti problemi di ricorsione dei dati
-
hai assolutamente ragione!!
avevo dimenticato le virgolette qui! ...VALUE='$nomeProdotto'>...
ora va a meraviglia...
grazie mille!
spero di poter essere utile anch'io, prima o poi!
-
figurati, non c'è di che, se avrò bisogno mi ricorderò:D