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

    Creare lista da form con possibilità di eliminare voci

    Buonasera a tutti,
    Vorrei creare un form con un semplice menu a tendina e un pulsante Submit.
    Ogni volta che il pulsante Submit viene premuto, ci� che � selezionato viene scritto sotto il form aggiungendosi (come in una lista) a ci� che era stato inserito precedentemente.
    In pi� al lato di ogni voce dovrebbe comparire un pulsante che rende possibili l'eliminazione dalla lista stessa.
    Ho provato a fare qualcosa la arrivato a questo punto mi sono arenato:

    Codice PHP:
    <?php
    session_start
    ();
    ?>

    <html>
    <head>
    <title>form</title>
    </head>
    <body>

    <form method="post" action="">
    <table>
    <tr>
    <td><label for="item">aggiungi elemento</label></td>
    <td><select name="item" id="item" class="form-control">
                               
                                            <option>Seleziona la provincia...</option>
                                                 <option sigla="AG" scuole="22" zona="Agrigento"  value="22">Agrigento</option>
                                                 <option sigla="AL" scuole="23" zona="Alessandria"  value="23">Alessandria</option>
                                                <option sigla="AN" scuole="24" zona="Ancona" value="24">Ancona</option>
                                                
                                        </select>
    </tr>
    </table>
    <input type="submit" name="invia" id="invia" value="aggiungi" />
    </form>

    <?php
    //non registrare valori nulli
    if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['item'] != NULL):

    //controlla se la sessione esiste, se no:
    if($_SESSION['ListItems'] == NULL):
    $items = array();
    array_push($items$_POST['item']);
    $_SESSION['ListItems'] = $items;

    //se esiste invece:
    else:
    array_push($_SESSION['ListItems'], $_POST['item']);
    endif;
    endif;

    //visualizza gli elementi soltanto se la sessione ListItems esiste
    if($_SESSION['ListItems'] != NULL):
    echo 
    '<ul>' "\n\r";
    foreach(
    $_SESSION['ListItems'] as $value):
    echo 
    '<li>' $value '</li>' "\n\r";
    endforeach;
    echo 
    '</ul>
    <form method="post" action="">
    <input type="submit" name="reset" id="reset" value="reset" />
    </form>' 
    "\n\r";
    endif;

    //cancella i valori aggiunti nell'array
    if($_POST['reset'] == 'reset'):
    unset(
    $_SESSION['ListItems']);
    header('Location: ' $_SERVER['PHP_SELF']);
    endif;

    ?>

    </body>
    </html>
    E' arduo, me ne rendo conto!
    Quello che vorrei ottenere � una cosa del genere: http://i65.tinypic.com/x114qp.png
    Quindi anche con un eventuale conteggio al lato del menu a tendina!
    In tre giorni sono solo riuscito a fare quello che vedete sopra e non so più dove sbattere la testa!
    Vi ringrazio in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Per fare una cosa del genere più che il php ti serve usare javascript.
    In php se non aggiorni la pagina ad ogni aggiunta non è proprio possibile farlo.

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Prova questo.

    Ho fatto in modo di non potere aggiungere due volte lo stesso valore e di non poter aggiungere "selelziona la provincia".

    Codice PHP:
    <?php
    session_start
    ();
    //cancella i valori aggiunti nell'array
    if(isset($_POST['reset']) &&  $_POST['reset'] == 'reset'):
     foreach(
    $_SESSION['ListItems'] as $key => $value) {
      if (
    $value == $_POST['toreset']) {
       unset(
    $_SESSION['ListItems'][$key]);
       continue;
      }
     }
     
    header('Location: ' $_SERVER['PHP_SELF']);
    endif;
    ?>
    <html>
    <head>
    <title>form</title>
    </head>
    <body>
    <form method="post" action="">
    <table>
    <tr>
    <td><label for="item">aggiungi elemento</label></td>
    <td><select name="item" id="item" class="form-control">
                               
                                            <option value="0">Seleziona la provincia...</option>
                                                 <option sigla="AG" scuole="22" zona="Agrigento"  value="22">Agrigento</option>
                                                 <option sigla="AL" scuole="23" zona="Alessandria"  value="23">Alessandria</option>
                                                <option sigla="AN" scuole="24" zona="Ancona" value="24">Ancona</option>
                                                
                                        </select>
    </tr>
    </table>
    <input type="submit" name="invia" id="invia" value="aggiungi" />
    </form>
    <?php
    //non registrare valori nulli
    if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['item'])):
     if (
    $_POST['item'] != "0"):
      
    //controlla se la sessione esiste, se no:
      
    if(! isset($_SESSION['ListItems'])):
       
    $items = array();
       
    array_push($items$_POST['item']);
       
    $_SESSION['ListItems'] = $items;
       
    //se esiste invece:
      
    else:
       if (!
    in_array($_POST['item'],$_SESSION['ListItems'] )) :
        
    array_push($_SESSION['ListItems'], $_POST['item']);
       endif;
      endif;
     endif;
    endif;
    //visualizza gli elementi soltanto se la sessione ListItems esiste
    if(isset($_SESSION['ListItems'])):
     foreach(
    $_SESSION['ListItems'] as $value):
      echo 
    '<form method="post" action="">';
      echo 
    "$value";
      echo 
    "<input type='hidden' name='toreset'  value='$value' />";  
      echo 
    '<input type="submit" name="reset" id="reset" value="reset" /></form>';  
     endforeach;
     echo 
    '</ul>';
    endif;
    ?>
    </body>
    </html>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Grazie mille!
    Fantistico, è perfetto.
    M4V1 e come potrei fare? Disconosco javascript, potreste darmi una mano?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da trattopunto Visualizza il messaggio
    Grazie mille!
    Fantistico, è perfetto.
    M4V1 e come potrei fare? Disconosco javascript, potreste darmi una mano?
    C'è la sezione Javascript dove puoi chiedere.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.