Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    select automatico dato un valore del select

    Salve a tutti, ho da poco lasciato un post in js perchè pensavo che il problema riguardasse una funzione in js.
    spiego in breve cosa vorrei ottenere.
    io ho questo:
    Codice PHP:
    <form name="invio" method="get" action="newsletter.php">
    <tr class="p3">
    <td  align="right">Destinatario :</td>
    <td >
    <select name="destinatario" class="news_input">
    <option value="" selected>Seleziona la categoria destinataria</option>
    <option value="prova">Prova</option>
    <option value="tutti">Tutti</option>
    <?    $query2 "select *from tabella order by nome_categoria";

    $result2 mysql_query($query2$db);
    if (
    $result2) {
        if  ( 
    mysql_num_rows($result2) > ) {
        while ( 
    $row2 mysql_fetch_array($result2)) {
    ?>
    <option value="<? echo $row2["id_categoria"]; ?>" ><? echo $row2["nome_categoria"]; ?></option>
    <?
    }
    }
    }

    ?>
        </select>
    </td>
    </tr>        
        </table>
    </div>
    <input type="hidden" name="id" value="<? echo $row['id']; ?>">
    <input type="hidden" name="azione" value="invia">
    </form>
    a questo puntovorrei che invece di inviare la categoria scelta vorrei che mi visualizzasse sulla stessa pagina (qui sotto) una lista di record che andrò ad estrarre dal db in base alla selezione sopra. quindi questo elenco che verrà visualizzato dovrà essere in automatico.
    (tutto ciò mi serve per avere un elenco di utenti eventualmente da eliminare come destinatario della newsletter che ho creato)

    grazie per l'attenzione

  2. #2
    basta che intercetti l'evento ONCHANGE del select, ricarichi la pagina e metti in una variabile il valore del select! quindi il tuo esempio diventa..

    Codice PHP:
    <?
      $select 
    $_POST['destinatario'];
    ?>
    <html>
    <head><title></title></head>
    <body>
    <form name="invio" method="get" action="newsletter.php">
    <tr class="p3">
    <td  align="right">Destinatario :</td>
    <td >
    <select name="destinatario" class="news_input" onchange="<?=$PHP_SELF?>">
    <option value="" selected>Seleziona la categoria destinataria</option>
    <option value="prova">Prova</option>
    <option value="tutti">Tutti</option>
       </select>
    </td>
    </tr>        
        </table>
    </div>
    <input type="hidden" name="id" value="<? echo $row['id']; ?>">
    <input type="hidden" name="azione" value="invia">
    </form>
    <?
      
    if ($select) {    
       
    $query2 "select *from tabella order by nome_categoria";
       
    $result2 mysql_query($query2$db);
       if (
    $result2) {
          if  ( 
    mysql_num_rows($result2) > ) {
            while ( 
    $row2 mysql_fetch_array($result2)) {
    ?>
    <option value="<? echo $row2["id_categoria"]; ?>" >
    <? echo $row2["nome_categoria"]; ?></option>
    <?
            
    }
         }
      }
    }
    ?>
    </body>
    </html>

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    Così facendo però sono costretto a ricaricare la pagina, mentre io invece dovo avere la possibilità di avere l'elenco visualizzato in base alla categoria selezionata.
    questo mi serve affinche posso escludere tramite un check alcuni degli utenti appartenenti all'elenco di quella categoria prima dell'invio(submit) alla funzione che mi invia la mail ai destinatari. pratcamente per ora ho:
    <form>
    select che mi fa scegliere una categoria di destinatari
    </form> ,
    invece vorrei:

    <form>
    select che mi fa scegliere una categoria di destinatari

    qui --> visualizzo l'elenco degli utenti apparteneti a quella categoria e tolgo il check (impostato per default a 1 per tutti) e quindi il pulsante submit
    </form> ,
    e nella pagina ricevente farò un upload nella tabella impostando a 0 gli utenti che non devono ricevere la mail.

    non è possibile trovare un modo per effettuare questa operazione? forse è mejo utilizzare un js? VVoVe: VVoVe: mannaggia..è quello il mio problema odio usare js magari se hai qualche idea in proposito leggo con piacere ciao e grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    up... nessuna idea??

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    ragazzi non sapevo se continuare a postare qua o su js ma dato che quello che devo chiedere riguarda il php..lo posto qua!
    allora ho trovato questo script e forse è modificabile al mio scopo...
    Codice PHP:
    <script language="JavaScript" type="text/javascript">
    <!--

    // This script supports an unlimited number of linked combo boxed
    // Their id must be "combo_0", "combo_1", "combo_2" etc.
    // Here you have to put the data that will fill the combo boxes
    // ie. data_2_1 will be the first option in the second combo box
    // when the first combo box has the second option selected

    // first combo box

        
    data_1 = new Option("1""$");
        
    data_2 = new Option("2""$$");

    // second combo box

        
    data_1_1 = new Option("11""-");
        
    data_1_2 = new Option("12""-");
        
    data_2_1 = new Option("21""--");
        
    data_2_2 = new Option("22""--");
        
    data_2_3 = new Option("23""--");
        
    data_2_4 = new Option("24""--");
        
    data_2_5 = new Option("25""--");

    // third combo box

        
    data_1_1_1 = new Option("111""*");
        
    data_1_1_2 = new Option("112""*");
        
    data_1_1_3 = new Option("113""*");
        
    data_1_2_1 = new Option("121""*");
        
    data_1_2_2 = new Option("122""*");
        
    data_1_2_3 = new Option("123""*");
        
    data_1_2_4 = new Option("124""*");
        
    data_2_1_1 = new Option("211""**");
        
    data_2_1_2 = new Option("212""**");
        
    data_2_2_1 = new Option("221""**");
        
    data_2_2_2 = new Option("222""**");
        
    data_2_3_1 = new Option("231""***");
        
    data_2_3_2 = new Option("232""***");

    // fourth combo box

        
    data_2_2_1_1 = new Option("2211","%")
        
    data_2_2_1_2 = new Option("2212","%%")

    // other parameters

        
    displaywhenempty=""
        
    valuewhenempty=-1

        displaywhennotempty
    ="-select-"
        
    valuewhennotempty=0

    function change(currentbox) {
        
    numb currentbox.id.split("_");
        
    currentbox numb[1];

        
    i=parseInt(currentbox)+1

    // I empty all combo boxes following the current one

        
    while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
               (
    document.getElementById("combo_"+i)!=null)) {
             
    son document.getElementById("combo_"+i);
             
    // I empty all options except the first one (it isn't allowed)
             
    for (m=son.options.length-1;m>0;m--) son.options[m]=null;
             
    // I reset the first option
             
    son.options[0]=new Option(displaywhenempty,valuewhenempty)
             
    i=i+1
        
    }

    // now I create the string with the "base" name ("stringa"), ie. "data_1_0"
    // to which I'll add _0,_1,_2,_3 etc to obtain the name of the combo box to fill

        
    stringa='data'
        
    i=0
        
    while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
               (
    document.getElementById("combo_"+i)!=null)) {
               eval(
    "stringa=stringa+'_'+document.getElementById(\"combo_"+i+"\").selectedIndex")
               if (
    i==currentbox) break;
               
    i=i+1
        
    }

    // filling the "son" combo (if exists)

        
    following=parseInt(currentbox)+1

        
    if ((eval("typeof(document.getElementById(\"combo_"+following+"\"))!='undefined'")) &&
           (
    document.getElementById("combo_"+following)!=null)) {
           
    son document.getElementById("combo_"+following);
           
    stringa=stringa+"_"
           
    i=0
           
    while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0)) {

           
    // if there are no options, I empty the first option of the "son" combo
           // otherwise I put "-select-" in it

                 
    if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
                     if (eval(
    "typeof("+stringa+"1)=='undefined'"))
                        eval(
    "son.options[0]=new Option(displaywhenempty,valuewhenempty)")
                     else
                     eval(
    "son.options[0]=new Option(displaywhennotempty,valuewhennotempty)")
              else
                  eval(
    "son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
              
    i=i+1
           
    }
           
    //son.focus()
           
    i=1
           combostatus
    =''
           
    cstatus=stringa.split("_")
           while (
    cstatus[i]!=null) {
              
    combostatus=combostatus+cstatus[i]
              
    i=i+1
              
    }
           return 
    combostatus;
        }
    }

    //-->
    </script>

    <form>
    <select name="combo0" id="combo_0" onChange="change(this);" style="width:200px;">
        <option value="value1">-select-</option>
        <option value="value2">1</option>
        <option value="value3">2</option>
    </select>



    <select name="combo1" id="combo_1" onChange="change(this)" style="width:200px;">
        <option value="value1">  </option>
    </select>



    <select name="combo2" id="combo_2" onChange="change(this);" style="width:200px;">
        <option value="value1">  </option>
    </select>



    <select name="combo3" id="combo_3" onChange="change(this);" style="width:200px;">
        <option value="value1">  </option>
    </select>
    </form> 
    questo è lo script che mi permette di selezionare delle scelte dato un select precedente. io avrei bisogno invece che dato la selezione del select a me restutuisca una lista di dati prelevati dal db a seconda della categoria scelta dalla select. come posso modificare lo script??
    chiedo scusa anticipatamente se forse era + idoneo postarlo su js e mi rimetto alla volontà del moderatore.

    grazie

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.