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

    problema con un select multiplo

    Salve
    Allora, vi spiego il mio problema: io ho una pagina dove modificare i dati di un libro e la lista degli autore viene visualizzata con una select multipla. Io vorrei che in questa select fossero selezionati gli autori del libro da modificare, solo che mi sto assolutamente incasinando fra cicli for, while e foreach Potreste aiutarmi? Il mio codice, che non funziona assolutamente, è il seguente:

    Codice PHP:
    $select_autore mysql_query ("SELECT IDpersona, nomePersona FROM persone WHERE cancella IS NULL ORDER BY nomePersona ASC")
        or die(
    mysql_error());
                
    print (
    "<select name=\"autoreLibro[]\" multiple=\"multiple\" size=\"10\"><option value=\"\"></option>");
                
    $fetch_autore mysql_fetch_array($select_autore);

    for (
    $u 0$u count ($fetch_autore['IDpersona']); $u++) {
        foreach (
    $fetch_libro as $a) {
            print (
    "<option value=\"" $fetch_autore['IDpersona'][$u] . "\"");
            if (
    $a['IDpersona'] == $fetch_autore['IDpersona'][$u]) {
                print (
    " selected=\"selected\"");
            };            
            print (
    ">" $fetch_autore['nomePersona'][$u] . "</option>");
        };
    }; 
    dove $fetch_libro è un array in cui si trovano tutti i dati del libro da modificare.
    Grazie mille a tutti per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    io farei così:
    Codice PHP:
    echo"<select size=\"10\" name=\"autoreLibro\" multiple>";

    while(
    $fetch_autore=mysql_fetch_array($select_autore))
    {
        if(
    $fetch_autore['IDpersona'] == $a['IDpersona']))
        {
            echo
    "<option value=\"$fetch_autore[IDpersona]\" selected>$fetch_autore[nomePersona]</option>";
        }else{
            echo
    "<option value=\"$fetch_autore[IDpersona]\">$fetch_autore[nomePersona]</option>";
        }
    }
    echo
    "</select>"
    Fammi sapere se funziona

  3. #3
    Innanzitutto grazie per l'aiuto
    Il fatto è che così funzionerebbe se ci fosse un autore solo, ma visto che ogni libro può avere più di un autore, in questo modo viene selezionato solo il primo. Avrei bisogno di un ciclo che mi scorresse l'array degli autori e all'interno un altro ciclo che per ogni autore ne confrontasse l'ID con un altro ciclo che scorre gli ID degli autori a cui il libro si riferisce...

    Attualmente ho un po' modificato: ho 3 query, una per i dati del libro, una per i dati di tutti gli autori e una che mi trova solamente lID degli autori riferiti al libro. ho cambiato lo script e ho messo:

    Codice PHP:
    $fetch_ID mysql_fetch_array($sel_ID_autore);

        while (
    $fetch_autore mysql_fetch_array($select_autore)) {
            print (
    "<option value=\"" $fetch_autore['IDpersona'] . "\"");
                
            
    //foreach ($fetch_ID as $abc) {
            //for ($u = 0; $u < count ($fetch_ID['IDpersona']); $u++) {
            
    while ($fetch_ID mysql_fetch_array($sel_ID_autore)) {
                if (
    $fetch_autore['IDpersona'] == $fetch_ID['IDpersona']) {
                    print (
    " selected=\"selected\"");
                };
            };
            print (
    ">" $fetch_autore['nomePersona'] . "</option>");

        }; 
    Ho lasciato le parti commentate appositamente perché con il secondo ciclo in while non mi seleziona niente, mentre con il for e il foreach mi seleziona solo il primo autore.
    Mi potete aiutare? Grazie mille

  4. #4

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.