Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    216

    eliminare opzione combobox

    Salve a tutti, ho un problema che non riesco a risolvere.

    Ho una combobox in cui le opzioni sono i numeri di una rivista on-line; quando scelgo un numero della rivista(per poi inserire gli articoli), quando poi vado di nuovo nel form,
    nelle opzioni quel numero della rivista che ho scelto non deve più comparire.
    Per esempio se scelgo Gennaio, quando vado di nuovo nel form, nelle opzioni
    della combobox devono comparire solo i numeri da Febbraio a Dicembre.
    So che devo controllare cosa già c'è nel database e mostrare solo quello che
    manca.
    Nel tabella edizioni del database ho aggiunto un campo(ed_selezionata) che viene
    impostato a 1 quando quell'edizione è stata scelta dalla combobox.
    Mi potete dare una suggerimento su come fare?
    Questo è il codice:
    Codice PHP:
    <?php
    $ed_aperte 
    mysql_query("SELECT * FROM edizioni WHERE edselezionata=0"
    or die(
    log_action(mysql_error()));
    $ed_aperta=mysql_num_rows($ed_aperte);
    if(
    $ed_aperta 0){
    echo 
    "<select id='selectNextEdition' name='edizione'>
    <optgroup label='Edizioni libere'>
    <option value='9:1:2009' label='IX - Gennaio 2009'>IX - Gennaio 
    2009</option>
    <option value='9:2:2009' label='IX - Febbraio 2009'>IX - Febbraio 
    2009</option>
    <option value='9:3:2009' label='IX - Marzo 2009'>IX - Marzo 2009</option>
    <option value='9:4:2009' label='IX - Aprile 2009'>IX - Aprile 2009</option>
    <option value='9:5:2009' label='IX - Maggio 2009'>IX - Maggio 2009</option>
    <option value='9:6:2009' label='IX - Giugno 2009'>IX - Giugno 2009</option>
    <option value='9:7:2009' label='IX - Luglio/Agosto 2009'>IX - Luglio/Agosto 
    2009</option>
    <option value='9:8:2009' label='IX - Settembre 2009'>IX - Settembre 
    2009</option>
    <option value='9:9:2009' label='IX - Ottobre 2009'>IX - Ottobre 
    2009</option>
    <option value='9:10:2009' label='IX - Novembre 2009'>IX - Novembre 
    2009</option>
    <option value='9:11:2009' label='IX - Dicembre 2009'>IX - Dicembre 
    2009</option>
    </optgroup></select>"
    ;
    }
    ?>
    Questa è la struttura del database (tabella edizioni):
    codice:
    id   int(11)  -PRIMARY  KEY
    edanno   tinyint(4)
    edmese   tinyint(4)
    edannoreale   int(11)
    ednumero   tinyint(4)
    fotocover   varchar(255)
    fotoautore   varchar(255)
    fotodesc   longtext
    attiva   enum('0', '1', '2')
    ed_selezionata    enum('0', '1')

  2. #2
    Codice PHP:
    <?php
    while($ed_aperta=mysql_num_rows($ed_aperte)){
         if(
    $ed_aperta[edselezionata] == "1"){
         echo
    "<option value=\"$ed_aperta[annoreale]:$ed_aperta[mese]\" label=\"$ed_aperta[campodainserire]\"> $ed_aperta[annoreale] e... </option>";
         }
    }
    ?>
    Ti conviene fare tutto dinamicamente così...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    216
    Grazie, ma facendo in quel modo nella combobox non
    viene visualizzata neanche un'opzione.

  4. #4
    Questo non è vero.
    Se i campi della combobox sono righe di una tabella, tu la costruisci dinamicamente.

    Es:
    Tabella riviste
    id -> int 2 -> es. 1
    mese -> varchar -> es. Gennaio
    selezionato -> smallint -> es. 1

    Quando tu fai il while fai


    Codice PHP:
    if($row[selezionato == "1"]){
    echo
    "<option value=\"$mese\">$mese</option> ";

    Verrà fuori in caso di selezionato a 1 una cosa così:
    <option value="Gennaio">Gennaio</option>

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    216
    Posto il codice completo(ho messo un commento sulla parte da modificare):
    Codice PHP:
    <?php
    include("include/session.php");

    if(
    $session->logged_in){
    include(
    "include/charsencode.func.php");
    include(
    "include/mome_funzioni.php");
    include(
    "include/userinfo.php");

    if(isset(
    $_REQUEST['id'])){
    $id $_REQUEST['id'];
    $articoli mysql_query("SELECT * FROM edizioni LEFT JOIN banners ON edizioni.id=banners.id 
    WHERE edizioni.id='"
    .$id."'");
    $articolo=mysql_fetch_object($articoli);
    $disabled_flag " disabled = 'disabled'";

    }else{
    $disabled_flag "";
    }

    if(isset(
    $articolo)){

    $anno post_db($articolo->edanno);
    $num  post_db($articolo->ednumero);
    $mese post_db($articolo->edmese);
    $anso post_db($articolo->edannoreale);
    $autore post_db($articolo->fotoautore);
    $desc post_db($articolo->fotodesc);
    $foto post_db($articolo->fotocover);
    $lockunlock $articolo->attiva;

    $hidden "<input name='azione' type='hidden' value='modedizione'/>\n"
    ."<input name='id' type='hidden' value='".$id."'/>\n"
    ."<input name='edizione_fix' type='hidden' value='".$anno.":".$mese.":".$anso."'/>\n";
    if(isset(
    $id)){
    echo(
    "<h1>Modifica Edizione #"
    ."[url='edizioni_read.php?id=".$id."']".$id."[/url]"
    ."</h1>\n");

    }else{
    echo(
    "<h1>Nuova Edizione</h1>\n");
    }

    echo(
    "</div><div id='elementi'>\n");


    if(isset(
    $articolo) && $articolo->attiva==2){
    echo(
    "<div id='riattiva'>");
    echo(
    "[url='#']Attiva modifiche[/url]");
    echo(
    "</div>");
    }

    echo(
    "</div>\n");
    echo(
    "<div class='clearfix'></div>");
    echo(
    "</div>\n");

    echo
    "<script type='text/javascript' src='include/togli_edizione.js'></script>";

    echo(
    "<form name='new_formedizione' id='new_formedizione' action='smista_insert.php' method='post' enctype='multipart/form-data'>\n");
    echo 
    $hidden;


    echo(
    "<div class='domtab'>\n");
    echo(
    "  <ul class='domtabs'>\n");
    echo(
    "[*][url='#t1']Informazioni[/url]\n");
    echo(
    "[*][url='#t2']Banners[/url]\n");
    echo(
    "[/list]\n");

    echo(
    "  <div class='box'>\n");
    echo(
    "    <h2><a name='t1' id='t1'>Informazioni</a></h2>\n");


    echo(
    "<div class='editrow'>\n");
    if(
    $disabled_flag==""){
    echo(
    "<div class='editleft'>Edizione</div>\n");
    }
    echo(
    "<div class='editright'>\n\n");

    function 
    selectNextEdition(){
    global 
    $session$romani$disabled_flag$mesi;    
    $disflag "";
    $out "";


        
    $query mysql_query("SELECT * FROM edizioni WHERE edannoreale = DATE_FORMAT(now(), '%Y') ORDER BY edmese ASC LIMIT 12") or die(log_action(mysql_error()));
        
    $num mysql_num_rows($query);


        if(
    $num>0){
        
    #l'anno in corso ha almeno una edizione aperta
            
    $full 11;
            
    $mancanti $full $num;
            
    $mesi_edizione $mesi;
            
    $mesi_post array_slice($mesi_edizione,0,11);
            
    $mesi_fatti = array();
            while(
    $obj mysql_fetch_object($query)){
                
    $mesi_fatti[$obj->ednumero] = $mesi_edizione[$obj->ednumero];
                
    $mesi_fatti_ext[$obj->ednumero] = num_edizione($obj->id);
                
    $anno $obj->edannoreale;
                
    $edanno $obj->edanno;
                }

                
    $postanno $anno 1;
                
    $numanno $edanno;                $numpost $edanno 1;
                
    $annoromano $romani[$numanno];
                
    $postromano $romani[$numpost];

            
    $mesi_liberi array_diff($mesi_edizione,$mesi_fatti);
            
    if(
    $disabled_flag!=""){
            
    $out .= "<select id='selectNextEdition' name='edizione' style='visibility:hidden' ".$disabled_flag.">\n";
            }
            else
            {
            
    $out .= "<select id='selectNextEdition' name='edizione' ".$disabled_flag.">\n";
            }
    if(
    $disabled_flag!=""){
    $no_nuova '1';
            
    $out .= "<optgroup label='Edizioni gi&agrave; aperte'>\n";

            foreach(
    $mesi_fatti as $id=>$mese){
                
    $out .= "<option style='text-decoration:line-through;color:#AAA;' value='".$numanno.":".$id.":".$anno."' 
                label='"
    .$mesi_fatti_ext[$id]."'>".$mesi_fatti_ext[$id]."</option>\n";
                }
            
    $out .= "</optgroup>\n";
    }

            
    $out .= "<optgroup label='Edizioni libere'>\n";

    $i 1;
            foreach(
    $mesi_liberi as $id=>$mese){
                
            if(
    $i == && !isset($no_nuova)){ $flag "selected='selected' "; }else{    $flag='';
            }
                
    $out .= "<option ".$flag." value='".$numanno.":".$id.":".$anno."' label='".$annoromano." - ".$mese." ".$anno."'>".$annoromano." - ".$mese." ".$anno."</option>\n";
                
    $i++;

                
            }
    $mese $mese+1;

     
     
                             
    //questo è il codice da modificare
            
    foreach($mesi_post as $id=>$mese){
                            
    $ed_aperte mysql_query("SELECT * FROM edizioni WHERE edselezionata='0'") or die(log_action(mysql_error()));


               
    $out .= "<option value='".$numpost.":".($id+1).":".$postanno."' label='".$postromano." - ".$mese ." ".$postanno."'>".$postromano." - ".$mese." ".$postanno."</option>\n";
            
                }
            
    $out .= "</optgroup>";
            
    $out .= "</select>";
                
            }else{
            
    #l'anno in corso e' a gennaio e non ha ancora una edizione aperta

            
    $full 11;
            
    $i 1;
            
    $flag "";

    $rim mysql_query("SELECT MAX(edannoreale) AS maxsolare, MAX(edanno) AS maxedizione FROM edizioni;");
    $rimedio mysql_fetch_array($rim);

            
    $numanno $rimedio['maxedizione'];
            
    $numanno $numanno 1;
            
    $anno $rimedio['maxsolare']; #cosi' almeno sarebbe giusto, ma sapendo con chi ha a che fare, facciamo un controllo:
            
    if($anno != date('Y')){ $anno date('Y'); } 
            
    $annoromano $romani[$numanno];
            
            
    $mesi_edizione $mesi;
            
    $out .= "<select id='selectNextEdition' name='edizione'".$disabled_flag.">\n";
            foreach(
    $mesi_edizione as $id=>$mese){
                
    $out .= "<option ".$flag."value='".$numanno.":".$id.":".$anno."' label='".$annoromano." - ".$mese." ".$anno."'>".$annoromano." - ".$mese." ".$anno."</option>\n";
                
    $i++;                    
            }
            
    $out .= "</select>";
            
            }
            
        echo 
    $out;
    }

    selectNextEdition();

    echo(
    "</div>\n");
    echo(
    "</div>\n");

    echo(
    "<div class='editrow'>\n");
    echo(
    "<div class='editleft'>Fotografo</div>\n");
    echo(
    "<div class='editright'>\n"
    ."<input name='ediz[fotografo]' type='text' size='52' value='".$autore."'/>\n"
    ."</div>\n");
    echo(
    "</div>\n");

    echo(
    "<div class='editrow'>\n");
    echo(
    "<div class='editleft'>Descrizione</div>\n");
    echo(
    "<div class='editright'>\n"
    ."<textarea name='ediz[desc]' id='count_fotodesc' rows='10' cols='50'>\n".$desc."</textarea>\n"
    ."
    <span id='msg_fotodesc'></span>"
    ."</div>\n");
    echo(
    "</div>\n");
        
    echo(
    "<div class='editrow'>\n");
    echo(
    "<div class='editleft'>Copertina</div>\n");
    echo(
    "<div class='editright'>\n");

    if(isset(
    $id) && $foto!=""){
    list(
    $thumbwidth$thumbheight$thumbtype$thumbattr) = getimagesize(THUMB_FOLDER.$foto);

    echo 
    "\n[img]".THUMB_FOLDER.$foto."[/img]";

    echo(
    "<input name='ediz[fotocover]' type='hidden' value='".$foto."'/>\n");

    echo
    '<a href="smista_delete.php?imgact=delcover&amp;eid='.$id.'" class="delcover" title="Elimina copertina">[img]'.SYSIMG_FOLDER.'icon-delete.png[/img]'
    .'</a>';

    }else{
    echo(
    "<input name='userfile' size=50 type='file' value='".$foto."'/>\n");
    }

    echo(
    "</div>\n");

    echo(
    "</div>\n");

    echo(
    "<div class='editrow'>\n");
    echo(
    "<div class='editleft'>Stato</div>\n");
    echo(
    "<div class='editright'>\n");
        echo(
    "<select name='ediz[attiva]' id='selStatoEdizione'>");
        echo(
    "<option value='0' label='Aperta'>Aperta</option>");
        echo(
    "<option value='1' label='Chiusa'>Chiusa</option>");
        echo(
    "<option value='2' label='Pubblicata'>Pubblicata</option>");
        echo(
    "</select>");
    echo(
    "</div>");

    echo(
    "</div>\n");
    if(isset(
    $_REQUEST['id'])){
        echo(
    "<div class='editrow'>\n");
        echo(
    "<div class='editleft'>Maschera ai motori di ricerca</div>\n");
        echo(
    "<div class='editright'>\n");
        
    $id=$_REQUEST['id'];
        
    $p_file fopen("../robots.txt","r");
        while(!
    feof($p_file))
        {
            
    $linea fgets($p_file255);
        }
        
    fclose($p_file);
        
    $idrobot=explode("id=",$linea);
        if (
    $idrobot[1]==$id){
            echo(
    "<input type='checkbox' name='maschera' value='1'  checked='checked'/> ATTENZIONE!! Prima di pubblicare l'edizione, disabilitare questa opzione!!!!");
        }    
        else    echo(
    "<input type='checkbox' name='maschera' value='0'/>");
        echo(
    "</div>");

    echo(
    "</div>\n");
    }
    echo(
    "<div class='editrow'>\n");
    echo(
    "<div class='editleft'></div>\n");
    echo(
    "<div class='editright'>\n"
    ."<input type='submit' value='Modifica edizione' name='modifica' class='act'/>\n"
    ."</div>");
    echo(
    "<div class='clearfix'></div>");
    echo(
    "</div>\n");
    echo(
    "</div>\n");
    echo(
    "</form>");
    ?>

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    216
    Ho provato in vari modi, ma non riesco a non far visualizzare
    nella combobox l'edizione che ho scelto.

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.