Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Select da un array con variabile di sessione

    Ciao a tutti mi sono incastrato su un problemino che non riesco a risolvere, forse qualcuno può gentilmente aiutarmi....

    Ho una SELECT che itera su un array (due valori), quello che mi aspetto è che se trova la variabile di sessione
    Codice PHP:
    if($_SESSION['selezionaTipoDoc']  == $value
    già editata allora la mantiene invariata - salvo che l'utente non la voglia modificare.

    il codice è:
    Codice PHP:

    $selezionaTipoDoc = $_POST["selezionaTipoDoc"]; 

                        <?php 
                        $tipoDoc 
    = array('B','F');
                        
    ?>
                        <select name="selezionaTipoDoc">
                             <?php foreach($tipoDoc AS $key => $value) { ?>
                                <option value="<?php echo $value?>
                                    <?php if($_SESSION['selezionaTipoDoc'] == $value) echo 'selected'?>
                                        >//qui il valore 'B' o 'F'
                                    <?php echo $value?>
                                </option>
                             <?php ?>
                        </select>
    L'errore che mi genera è il seguente:
    Undefined index: selezionaTipoDoc
    qualche suggerimento?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    L'errore appare se la variabile di sessione non è stata creata, quindi prima di verificarne il contenuto, verifica che esista
    Codice PHP:
    if (isset($_SESSION['selezionaTipoDoc'] )
    {
        if (
    $_SESSION['selezionaTipoDoc'] == $value) echo 'selected';


  3. #3
    temo di sbagliare ancora qualcosa
    Codice PHP:
                                <option value="<?php echo $value?>
                                    <?php 
                                    
    if (isset($_SESSION['selezionaTipoDoc'])) { 
                                        
    $value $_SESSION['selezionaTipoDoc']; 
                                    } 
                                    if(
    $_SESSION['selezionaTipoDoc'] == $value) echo 'selected'?>
                                        >
                                    <?php 
                                    
                                    
    echo $value?>
                                </option>
    non solo non ho risolto il problema, ma non mi salva neanche il valore, quindi al prossimo refresh della pagina il valore è il primo della lista, io vorrei invece che rimanesse quello impostato all'ultimo submit

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Si che sbagli, non hai fatto come ti ho scritto io.

    if($_SESSION['selezionaTipoDoc'] == $value) echo 'selected';

    deve stare dentro a if (isset(....))

    senza poi contare che assegni
    $value = $_SESSION['selezionaTipoDoc'];

    quindi nel controllo successivo saranno per forza sempre uguali.

  5. #5
    ok grazie undefined index risolto, ma non salvo il valore nella sessione correttamente...
    Codice PHP:
                                <option value="<?php echo $value?>
                                    <?php 
                                    
    if (isset($_SESSION['selezionaTipoDoc'])) { 
                                     
    $value $_SESSION['selezionaTipoDoc']; 
                                        if(
    $_SESSION['selezionaTipoDoc'] == $value) echo 'selected';
                                    } 
                                     
    ?>
                                        >
                                    <?php 
                                    
                                    
    echo $value?>
                                </option>
    ad ogni refresh ripresenta sempre il primo della lista

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    $value = $_SESSION['selezionaTipoDoc'];

    questo lo devi togliere, altrimenti è ovvio che nell'if seguente saranno uguali e verrà stampato "selected" per ogni voce.

  7. #7
    purtroppo il risultato non cambia.... ignora sempre la mia scelta al prossimo caricamento....

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Allora hai qualche problema da qualche altra parte.

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.