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

    Ottenere i valori di un select multiplo

    nel db ho inserito i valori di un select multiplo in questo formato:
    1,2,3 attraverso la funzione implode adesso nella pagina di modifica ho bisogno di avere lo stesso campo select con le voci a cui corrispondono quei valori gia selezionate, come faccio?
    premetto che il nome ed il valore dei campi vengono presi da una tabella chiamata supporto e precisamente dal campo id
    mentre i valori (1,2,3) vengono presi da una tabella chiamata prodotti dal campo supp_comm
    grazie

  2. #2
    <select multiple name=nome[]>

    aggiungendo [] dopo il nome ti crea un'array con tutti i valori selezionati

  3. #3
    forse mi sono spiegato male,
    il problema non ce l'ho in fase di invio dati, ma quando in zona di amministrazione li voglio modificare

    io faccio la connessione al db (creo dinamicamente il campo select) mi restituisce il recordset supporto dove ottengo tutti i nomi e i valori del campo select poi li devo confrontare con i i valori presenti nel campo supporto_comm relativi au un prodotto esempio
    prodotti.php?id=5 questo mi da i valori del campo supporto_comm che sono 1,2,3 poi da qui non so come collegare quello che mi hai detto tu:
    <select multiple name=nome[]>


    <select name="nome[]" size="6" multiple>
    <?php
    do {
    ?>
    <option value="<?php echo $row_supporto['id']?>"<?php if (!(strcmp($row_supporto['id'], $row_prodotti['supporto]))) {echo "SELECTED";} ?>><?php echo $row_supporto['nome']?></option>
    <?php
    } while ($row_supporto = mysql_fetch_assoc($supporto));
    $rows = mysql_num_rows($supporto);
    if($rows > 0) {
    mysql_data_seek($supporto, 0);
    $row_supporto = mysql_fetch_assoc($supporto);
    }
    ?>
    avevo provato cosi ma non va

  4. #4
    scusa non avevo letto tutto il tuo messaggio e credo che ti ho mandato fuori strada

    Se ho capito bene ricevi i valori e con implode li metti nella forma

    1,2,3,....ecc

    Se devi selezionare questi dati di un campo del db puoi fare

    SELECT * FROM tabella WHERE campo IN ($elenco);

    dove elenco è la variabile ricavata con implode

    Altrimenti non c'ho ancora capito niente

  5. #5
    scusa non è colpa tua è che ho scritto male il messaggio, allora la situazione è questa
    per semplificare
    ho un db con due tabelle : prodotti e supporto
    prodotti contiene ovviamente i prodotti (campi: nome, supporto, id)
    supporto contiene il nome i dati e l'id associato al personale addetto a svolgere attività di consulenza su quel prodotto
    quindi ogni prodotto puo avere da 1 a x persone addette a rispondere alle telefonate dei clienti per avere assistenza
    esempio
    nome: mario rossi, indirizzo: via pippo 5, id: 5

    nella zona di amministrazione del sito quando vado ad aggiungere un prodotto ho una pagina con un form nel quale ci sono (sempre per semplificare) 2 campi:

    nome_prodotto (nome)
    <input name=prodotto type=text class=testo id=titolo size=25>

    e

    supporto che prende genero dinamicamente prendento i dati dalla tabella in questo modo:
    <select name="supporto[]" size=6 multiple class=testo>
    <option value=\"";print $row_supporto['id'];print "\">";print $row_supporto['nome'];print " </option>

    ottengo un menu a selezione multipla contenente tutti record che sono inseriti nella tabella supporto che hanno il valore id

    cosi ad ogni prodotto posso associare più persone inviando gli id relativi nel campo supporto della tabella prodotti con questa funzione:

    $valori_id_supporto = implode(",", $_POST['supporto']);

    cosi inserisco i dati in questa forma: 1,2,3
    in fase di modifica:
    ho una pagina modifica_prodotto.php a cui passo il valore dell'id del prodotto es.: prodotto.php?id=5 per ottenere i valori dei campi
    nome :

    <input name=prodotto type=text class=testo id=titolo size=25 value= $row_prodotti[nome_prodotto]>

    e questa famosa textarea che prende i valori dalla tabella supporto
    fin qui tutto ok, il problema nasce quando voglio mettere selezionati i valori uguali a quelli che ho inserito nel db in fase di aggiunta prodotto
    nel campo supporto della tabella prodotti questa situazione 1,2,3 quindi adesso vorrei che il campo select avesse selezionati i nomi che hanno associato l'id 1, 2 e 3 come posso fare
    scusa di nuovo, spero questa volta di essere stato chiaro.
    ciao

  6. #6
    credo di aver capito

    puoi fare in questo modo
    con esplode ti ricrei l'array contenente tutti gli id e poi quando stampi la select controlli se l'id corrente è nell'array con http://it2.php.net/manual/it/function.in-array.php in_array()

    se è presente aggiungi selected
    <option value="bubu" selected>bubu

    altrimenti no
    <option value="bubu">bubu


  7. #7
    grazie funziona

  8. #8

  9. #9
    anche io ho lo stesso problema....ma nn sono riuscito a risolvere....

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.