Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: variabili di sessione

  1. #1

    variabili di sessione

    Salve a tutti avrei bisogno ancora del vostro aiuto se possibile:
    ho la pagina prodotti dove vi sono delle checkbox che prendono valori dal mio database,
    e qui tutto ok
    nella seconda pagina preventivi
    recupero i valori tramite un ciclo foreach e anche qui tutto ok
    ma quando voglio modificare uno dei prodotti selezionati tornando indietro mi spariscono tutti i fleg selezionati.
    naturalmente sò che devo usare variabili di sessione, ho provato in varie maniere e ricerche varie anche nel vostro forum ma aimè non ci ho capito molto, se è possibile e senza molto disturbo, potreste voi farmi un esempio pratico?
    grazie e scusate ancora per il disturbo.
    Posto il mio codice

    prodotti.php

    Codice PHP:
    <form action="preventivo.php" method="post">       
    <?php do { ?>         
    <h4>Aperitivi </h4>         
    <div id="aperitivi">           
    <?php echo $row_Rs_portate['aperitivi'];?>           
    <input name="myCheck[]" type="checkbox" value="<?php  $row_Rs_portate['aperitivi']; ?>" />  

    <?php } while ($row_Rs_portate mysql_fetch_assoc($Rs_portate)); ?>
    <input name="" type="submit" />
     </form>
    </div>
    preventivo.php

    Codice PHP:
    <div id="news">    
    <?php foreach ($myCheck as $key => $value) {  echo "$value
    "
    ;  }   ?>     
    [url="portate.php"] modifica il tuo preventivo[/url]</div>

  2. #2
    io continuo cercando di trovare una soluziona così non mi lascia fleggate le selezioni

    Codice PHP:
    <?php $_SESSION['aperitivi']=$aperitivi; echo $row_Rs_portate['aperitivi'];?>           <input name="myCheck[]"  type="checkbox" value="<?php echo $row_Rs_portate['aperitivi']; ?>" />
     </div>
    e la richiamo

    Codice PHP:
     <?php $_SESSION['aperitivi']; 
    $myCheck $_POST['myCheck'];  
    foreach (
    $myCheck as $key => $value
    {      
    echo 
    "$value
    "
    ;  
    }   
    ?>      
    [url="portate.php"] modifica il tuo preventivo[/url]</div>
    naturalmente con session_start()
    sopra ogni pagina

  3. #3
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    myCheck[] non è un semplice campo, è un array di campi, che viene costruito ogni volta in maniera diversa quindi così non hai possibilità di sapere se era stato flaggato o meno, perchè l'indice che ha la prima volta che viene caricata la pagina potrebbe essere diverso dalla seconda.

    es.

    prima volta
    codice:
    <input name="myCheck[]" type="checkbox" value="vino" />  
    <input name="myCheck[]" type="checkbox" value="birra" />  
    <input name="myCheck[]" type="checkbox" value="aranciata" />
    seconda volta
    codice:
    <input name="myCheck[]" type="checkbox" value="vino" />
    <input name="myCheck[]" type="checkbox" value="cocaCola" />  
    <input name="myCheck[]" type="checkbox" value="birra" />  
    <input name="myCheck[]" type="checkbox" value="aranciata" />
    quando carichi la pagina la prima volta il valore birra starà nella variabile

    $_POST['myCheck'][1]

    mentre la seconda volta la troverai su

    $_POST['myCheck'][2]

    Quindi confrontarlo con un eventuale session risulta impossobile. io risolverei mettendo un indice di sicura stabilità, tipo l'id della tabella aperitivi


    Codice PHP:
    <input name="myCheck[<?php  echo $row_Rs_portate['id']; ?>]" type="checkbox" value="<?php  echo $row_Rs_portate['aperitivi']; ?>" />
    a questo punto sai che myCheck[5] sarà sempre la birra e quindi puoi mettere tutto l'array myCheck dentro session

    Codice PHP:
    $_SESSION['myCheck']=$_POST['myCheck']; 
    e quando crei la pagina puoi confrontarli

    Codice PHP:
    <form action="preventivo.php" method="post">       
    <?php do { ?>         
    <h4>Aperitivi </h4>         
    <div id="aperitivi">           
    <?php echo $row_Rs_portate['aperitivi'];?>           
    <input name="myCheck[<?php  echo $row_Rs_portate['id']; ?>]" type="checkbox" <?php echo (isset($_SESSION['myCheck'][$row_Rs_portate['id']])) ? "checked=\"checked\" ":""?> value="<?php  $row_Rs_portate['aperitivi']; ?>" />  

    <?php } while ($row_Rs_portate mysql_fetch_assoc($Rs_portate)); ?>
    <input name="" type="submit" />
     </form>
    </div>


    P.S. non so se sia utile avere una sintassi così per il ciclo while, in questo modo anche se la tabella è vuota crea esegue la prima istanza del ciclo, e questo potrebbe creare problemi
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  4. #4
    ciao grazie per il tuo aiuto,
    mi restituisce il valore on, no il prodotto selezionato
    e ancora non lascia fleggate i check selezionati.

  5. #5
    ti prego non smontarmi il mio ciclo while, l' ho studiato una settimana

  6. #6
    Da una lettura molto rapida...
    Prima pagina
    Codice PHP:
    $output "";
    while (
    $row my_sql_fetch_assoc($resource)) {
         if (isset(
    $_SESSION["cb"][$row["id"]])) {
                
    $checked "checked";
         } else {
                
    $checked "";
         }
         
    $output .= <<<EOF
                   <input type="checkbox" name="cb[{$row["id"]}]" id="cb[{$row["id"]}]" value="{$row["nome"]}{$checked}>
    EOF
    ;
    echo 
    $output;

    Quando torni indietro, la condizione nell'if dovrebbe svolgere il suo compito...

  7. #7
    scolta marghe anche io cerco una cosa simile, se lo scopri postalo per favore anche perchè questi due esempi non funzionano entrambi perlomeno a me.
    eppure tutti dicono che il php è semplice
    vi ringrazio tutti

  8. #8
    eppure tutti dicono che il php è semplice
    la curva di apprendimento è semplice rispetto a linguaggi più macchinosi.

  9. #9
    e sevede che la tua curva non è a gomito come la mia,
    ma la cosa più semplice "le variabili di sessione" diventano incomprensibili, son tre mesi che ci sbatto la testa io e molti altri nel web.
    vi ringrazio tutti

  10. #10
    Originariamente inviato da nonsosecelafa
    ..."le variabili di sessione" diventano incomprensibili...
    Non capisco dove sia il problema.

    Originariamente inviato da nonsosecelafa
    ...son tre mesi che ci sbatto la testa io e molti altri nel web.
    Allora ti consiglio di dedicare il tuo prezioso tempo ad altro.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.