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

    Aggiungere option dinamicamente a select generate in php


    Ho 2 select generate in php, vorrei aggiungere/modificare dinamicamente delle option in queste 2 select:

    codice:
    
    
    Codice PHP:
    $meta_box['post'] = array(      'id'         =>     'post-format-meta',     'title'             =>     'Campi addizionali'// titolo del box      'context'     =>     'normal',     'priority'     =>     'high',     'fields' => array(                   // prima select (Zona)         array(           'name'    => 'Zona',           'desc'    => 'Inserisci la zona',           'id'      => 'Zona',            'type'    => 'select',             'options' => array(              array( 'name' => '''value' => '', ),               array( 'name' => 'Entro GRA''value' => 'Entro GRA', ),              array( 'name' => 'Roma Nord''value' => 'Roma Nord', ),              array( 'name' => 'Roma Sud''value' => 'Roma Sud', ),              // QUI voglio aggiungere voci/option                 ),             ),                 // seconda select (Tipologia)         array(           'name'    => 'Tipologia Immobile',           'desc'    => 'Scegli la tipologia',           'id'      => 'Tipologia',            'type'    => 'select',             'options' => array(              array( 'name' => '''value' => '', ),               array( 'name' => 'Appartamento''value' => 'Appartamento', ),              array( 'name' => 'Villa''value' => 'Villa', ),              array( 'name' => 'Villino''value' => 'Villino', ),              // QUI voglio aggiungere voci/option                 ),             ), 
    Per inserire le nuove voci pensavo ad una casella di testo in cui scrivere il 'campo' seguita da 'invio' per inserire e quindi aggiornare l'elenco delle option per ognuna delle 2 select
    (facendo in modo che ciò che viene inserito nella casella sia poi passato sia come 'name' che come 'value')
    Luxx (°)
    Chi sa dica, chi non sa chieda.

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Javascript o refresh della pagina dove gestisci i campi da aggiungere.

  3. #3
    Grazie...
    i campi li dovrei aggiungere (o far aggiungere) da una sezione di "campi personalizzati" (c.d."Custom Field") che mi sono creato apposta (WP).
    Quindi in definitiva da backend, per cui credo che dovrò per forza farlo con JavaScript (setInterval o giù di lì)
    Luxx (°)
    Chi sa dica, chi non sa chieda.

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    o.O
    set interval ??? a che te serve ?????

    pigli i dati che devi aggiunree alle select(falo da dati hard coded oppure caricati in ajax) e aggiungili ale option della select .... non e' difficile mi pare basti un setOption() da js

  5. #5
    Grazie Virus, ma temo di aver dato l'impressione di saperne più di quel che in realtà so.
    Approfitto della disponibilità e spiego:
    1) nel backend ho le 2 select che dicevo, dall'una "scelgo" (o faccio scegliere al cliente) la Zona, nell'altra si "sceglie" la Tipologia.
    Siccome in questo campo (immobiliare) ognuno ha le sue idee e la sua cultura, è opportuno che io crei un sistema *aperto* in modo che le opzioni possano essere inserite a piacimento es.: si vuole aggiungere "Casa Indipendente" tra le opzioni di Tipologia.
    Questo devo poterlo fare con un semplice *campo testo* che comparirà sempre nel backend (spesso il cliente non sa e non vuole fare altro che digitare), questo "campo testo" passa il "valore" alla select e questa mostrerà tra le opzioni l'ulteriore dicitura "Casa Indipendente".

    2) quindi ciò che mi serve è di identificare l'array delle "options" di "Tipologia"
    (tramite 'name' ? 'id' ?)
    e passare a questo una nuova coppia 'name' e 'value' che costituirà la nuova opzione.

    3) pensavo a qualcosa tipo setInterval per evitare di scrivere istruzioni tipo "per aggiungere un nuovo campo etc... premi F5 etc..." che fanno spaventare il cliente.

    4) tornando alla mia ignoranza: potresti farmi un piccolo esempio basato sul codice che ho postato? Poi faccio qualche esperimento da me.

    Grazie ancora.
    Luxx (°)
    Chi sa dica, chi non sa chieda.

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    1- creare ke opportune relazioni tra le tabelle
    1 a molti, molti a molti, o 1-1 dipende da te e da quanto deve essere flessibile il sistema.

    2- impostare il codice in modo che questi dati vengono gestiti correttamente(crea le opportune funzioni di recupero dati.

    3- lo faicon onchange sulla select.
    Oppure direttamente da onclick sull'elemento

    4- non e' cosi' immediato da fare e raramente posto codice ma ti lascio degli spunti da cui partire

    A) crea tabella di relazione cosi' puoi gestire le relazioni tra gli elementi come ti pare

    table tipo1_tipo2
    id_1
    id_2
    tiporelazione

    primary key(id_1,id_2,tipo_relazione)

    B) Crea le funzioni di recupero dati
    function loadTipo1($opts)
    function loadTipo2($opts)

    C) imposta la pagina html con il primo selettore
    C.1) dati dinamici :
    hai 2 possibili strade ajax o refresh pagina con parametro get.
    Ad ora mi sa che ti conviene la seconda soluzione, per cui a selezione dell'elemento ricarichi la pagina passano un parametro ?sel1=[ID TIPO 1]
    C.2) La pagina esegue un controllo
    if( isset($_GET) && is_set($_GET["sql1"]) && abs($_GET["sel1"]) )
    {
    // carica i dati relazionati a tipo1
    $dati = loadTipo2( array( "id"=>$_GET["sel1"] , "order" => "name" , "ordDir" => "asc" ...... ) ) ;
    }

    C.3) popola il secondo selettore

  7. #7
    OK mi studio il tutto e cerco di venirne a capo. Grazie
    Luxx (°)
    Chi sa dica, chi non sa chieda.

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Ottimo fammi sapere come va nel frattempo

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.