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

    JQuery fare la get di una variabile da un dropdown menù con option selected

    Salve,
    sono alle prime armi con jQuery e vorrei una mano.
    Ho una pagina PHP con un pulsante che richiama un modal dialog in cui ho un menù dropdown dove il primo valore è già selezionato. Quando clicco il pulsante OK, nella pagina PHP il val è acquisito in modo corretto. Ora, se riapro il popup e seleziono un nuovo valore dal menù, lo script mi restituisce un valore nullo.

    Posto il codice:

    Codice PHP:
         <div id="dialog" title="Seleziona">      
     <select id="time"  multiple="multiple">    
                            <? for ($i 1$i <= 10$i++) {          
                          
    ?><option  value="<?= $i 30 ?>
    <? if ($i == 1) { ?>selected="true"<? ?>><?= $i 30 ?></option>
    <?                 }                            ?>                
            </select>
    </div>
    codice HTML:
       $("#dialog").dialog({              
      bgiframe: true,         
           autoOpen: false,       
             height: 500,             
       width: 600,    
                modal: true,           
         buttons: {                    'Ok': function() {         
                   var bValid = false;                    
        allFields.removeClass('ui-state-error');                                                $("#time").change(function() {             
                          selectVal = $('#time option:selected').val();         
                           $('#form [name="time"]').val(selectVal);      
                      });                                              
         $(this).dialog('close');                    }, 
                       Cancel: function() {   
                         $(this).dialog('close');      
                 }    
                }      
          });
    Spero in un vostro aiuto perchè sto impazzendo

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Metti la pagina demo online, oppure posta tutto il codice della pagina senza php ma come la riceve il browser
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    codice HTML:
    <head>    <link href="assets/flatdoc/theme-white/style.css" rel="stylesheet">    <link type="text/css" href="base/ui.all.css" rel="stylesheet" />    <link href="multiple-select.css" rel="stylesheet"/>    <script src="assets/jquery.min.js"></script>    <script type="text/javascript" src="../../js/ui.core.js"></script>    <script type="text/javascript" src="../../js/ui.resizable.js"></script>    <script type="text/javascript" src="../../js/ui.draggable.js"></script>    <script type="text/javascript" src="../../js/ui.dialog.js"></script>    <script type="text/javascript" src="../../js/effects.core.js"></script>    <script type="text/javascript" src="../../js/effects.highlight.js"></script>    <script type="text/javascript" src="../../js/jquery.bgiframe.js"></script>    <script src="jquery.multiple.select.js"></script>    <script src="../../js/jquery_checkall_1_0_forjquery_1_4_2_head.js"></script>    <style type="text/css">        body { font-size: 62.5%; }        input.text, select { margin-bottom:12px; width:95%; padding: .4em; }        form {margin-bottom: 25px;}        fieldset { padding:0; border:0; margin-top:0px; }        h1 { font-size: 1.2em; margin: .6em 0; }        h2 { font-size: 1.0em; margin: .6em 0; text-align: center; font-weight: bold;}        div#users-contain {  width: 350px; margin: 20px 0; }        div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }        div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }        .ui-button { outline: 0; margin:0; padding: .4em 1em .5em; text-decoration:none;    cursor:pointer; position: relative; text-align: center; }        .ui-dialog .ui-state-highlight, .ui-dialog .ui-state-error { padding: .3em;  }    </style>    <script type="text/javascript">        $(function() {                    var time = $("#time"),            refresh = $("#refresh"),            penne = $("#penne"),            allFields = $([]).add(time).add(refresh).add(penne),            tips = $("#validateTips");            function updateTips(t) {                tips.text(t).effect("highlight",{},1500);            }            function checkLength(o,n,min,max) {                if ( o.val().length > max || o.val().length < min ) {                    o.addClass('ui-state-error');                    //updateTips("Length of " + n + " must be between "+min+" and "+max+".");                    updateTips("Devi selezionare almeno una penna ");                    return false;                } else {                    return true;                }            }            function checkRegexp(o,regexp,n) {                if ( !( regexp.test( o.val() ) ) ) {                    o.addClass('ui-state-error');                    updateTips(n);                    return false;                } else {                    return true;                }            }                                    $("#dialog").dialog({                bgiframe: true,                autoOpen: false,                height: 500,                width: 600,                modal: true,                buttons: {                    'Ok': function() {                        var bValid = false;                        allFields.removeClass('ui-state-error');                        
    
                            $("#time").change(function() {                               var selectVal3 = $('#time option:selected').val();                            $('#form [name="time"]').val(selectVal3);                        });                        $(this).find(':checked').each(function() {                            bValid=true;                            var name = $(this).attr('name');                            $('#form [name="' + name + '"]').val(name);                        });                        if (bValid) {                            $(this).dialog('close');                        }                    },                    Cancel: function() {                        $(this).dialog('close');                    }                }            });                                    $('#create-user').click(function() {                $('#dialog').dialog('open');            })            .hover(            function(){                 $(this).addClass("ui-state-hover");             },            function(){                 $(this).removeClass("ui-state-hover");             }        ).mousedown(function(){                $(this).addClass("ui-state-active");             })            .mouseup(function(){                $(this).removeClass("ui-state-active");            });        });    </script></head><body>    <div class="demo">        <div id="dialog" title="Seleziona le Penne">            <form id='form'>                <fieldset>                    <p id='e17'><label for="time">Trigger (minuti)</label>                        <select id="time" name="time" multiple="multiple">                            <option value="30" selected>30</option>                            <option value="60" >60</option>                            <option value="90" >90</option>                            <option value="120" >120</option>                        </select>                        <script>                            $("select").multipleSelect({                                single: true                                                            });                            </script>                    </p><br>                    <p id='e17'><label for="refresh">Refresh (secondi)</label>                        <select multiple="multiple" name="refresh" id="refresh">                            <option value="5" selected="true">5</option>                            <option value="10" >10</option>                            <option value="20" >20</option>                            <option value="30" >30</option>                            <option value="60" >60</option>                        </select>                        <script>                            $("select").multipleSelect({                                single: true                            });                        </script>                    </p> <br>                    <label for="penne">Penne</label>                    <fieldset>                        <table width="100%" class="ui-widget ui-widget-content">                                                        <thead >                                <tr class="ui-widget-header "><td colspan="4"><h2>Linea 1</h2></td></tr>                                <tr class="ui-widget-header ">                                    <th><input type="checkbox" class="parentCheckBox" /></th>                                    <th>Tag</th>                                    <th>Unit&agrave; di Misura</th>                                    <th>Descrizione</th>                                </tr>                             </thead>                            <tbody>                                <tr>                                    <td><input type="checkbox" name="A" class="childCheckBox" ></td>                                    <td>A</td>                                                                    <td>B</td>                                    <td>C</td>                                </tr>                                <tr>                                    <td><input type="checkbox" name="B" class="childCheckBox" ></td>                                    <td>AA</td>                                    <td>BB</td>                                    <td>CC</td>                                </tr>                            </tbody>                        </table>                    </fieldset>                </fieldset>            </form>        </div>        <div id="users-contain" class="ui-widget">            <form id="form">                <div>form Tempo<input type="text" name="time"  /></div>                <div>form Refresh<input type="text" name="refresh"  /></div>                <div>form Box1<input type="text" name="A"  /></div>                <div>form Box2<input type="text" name="B"  /></div>            </form>        </div>        <button id="create-user" class="ui-button ui-state-default ui-corner-all">Create new user</button>    </div><!-- End demo -->

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ok, hai scelto il codice formattalo in modo leggibile riga per riga e elimina il codice commentato che confonde solo visto che comunque non viene eseguito/processato
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Ho provato a formattarlo ma ritorna sempre come prima.
    Comunque ho notato che la prima volta i dati vengono acquisiti dal popup indifferentemente se sono selezionati da un dropmenù o da una checklist mentre dalla seconda volta in avanti i valori restituiti sono null.
    Ho pensato che potrebbe essere un problema di "inizializzazione" o comunque di aggiornamento della pagina prima che venga riaperto il popup.
    Spero di essere stato chiaro

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Chiarissimo come il codice, se tu pensi che questo ci agevoli non devi fare altro che attendere
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    <head>
    <link href="assets/flatdoc/theme-white/style.css" rel="stylesheet">
    <link type="text/css" href="base/ui.all.css" rel="stylesheet" />
    <link href="multiple-select.css" rel="stylesheet"/>
    <script src="assets/jquery.min.js"></script>
    <script type="text/javascript" src="../../js/ui.core.js"></script>
    <script type="text/javascript" src="../../js/ui.resizable.js"></script>
    <script type="text/javascript" src="../../js/ui.draggable.js"></script>
    <script type="text/javascript" src="../../js/ui.dialog.js"></script>
    <script type="text/javascript" src="../../js/effects.core.js"></script>
    <script type="text/javascript" src="../../js/effects.highlight.js"></script>
    <script type="text/javascript" src="../../js/jquery.bgiframe.js"></script>
    <script src="jquery.multiple.select.js"></script>
    <script src="../../js/jquery_checkall_1_0_forjquery_1_4_2_head.js"></script>
    <style type="text/css">
    body { font-size: 62.5%; }
    input.text, select { margin-bottom:12px; width:95%; padding: .4em; }
    form {margin-bottom: 25px;}
    fieldset { padding:0; border:0; margin-top:0px; }
    h1 { font-size: 1.2em; margin: .6em 0; }
    h2 { font-size: 1.0em; margin: .6em 0; text-align: center; font-weight: bold;}
    div#users-contain { width: 350px; margin: 20px 0; }
    div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }
    div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }
    .ui-button { outline: 0; margin:0; padding: .4em 1em .5em; text-decoration:none; cursorointer; position: relative; text-align: center; }
    .ui-dialog .ui-state-highlight, .ui-dialog .ui-state-error { padding: .3em; }
    </style>
    <script type="text/javascript">
    $(function() {
    var time = $("#time"),
    refresh = $("#refresh"),
    penne = $("#penne"),
    allFields = $([]).add(time).add(refresh).add(penne),
    tips = $("#validateTips");
    $("#dialog").dialog({
    bgiframe: true,
    autoOpen: false,
    height: 500,
    width: 600,
    modal: true,
    buttons: {
    'Ok': function() {
    var bValid = false;
    allFields.removeClass('ui-state-error');
    $(this).find('option:selected').each(function() {
    bValid=true;
    var name = $(this).attr('name');
    $('#form [name="' + name + '"]').val(name);
    });
    $(this).find(':checked').each(function() {
    bValid=true;
    var name = $(this).attr('name');
    $('#form [name="' + name + '"]').val(name);
    });
    if (bValid) {
    $(this).dialog('close');
    }
    },
    Cancel: function() {
    $(this).dialog('close');
    }
    }
    });
    $('#create-user').click(function() {
    $('#dialog').dialog('open');
    })
    .hover(
    function(){
    $(this).addClass("ui-state-hover");
    },
    function(){
    $(this).removeClass("ui-state-hover");
    }
    )
    .mousedown(function(){
    $(this).addClass("ui-state-active");
    })
    .mouseup(function(){
    $(this).removeClass("ui-state-active");
    });
    });
    </script>
    </head>
    <body>
    <div class="demo">
    <div id="dialog" title="Seleziona le Penne">
    <form id='form'>
    <fieldset>
    <p id='e17'><label for="time">Trigger (minuti)</label>
    <select id="time" name="time" multiple="multiple">
    <option value="30" selected>30</option>
    <option value="60" >60</option>
    <option value="90" >90</option>
    <option value="120" >120</option>
    </select>
    <script>
    $("select").multipleSelect({
    single: true
    });
    </script></p><br>
    <p id='e17'><label for="refresh">Refresh (secondi)</label>
    <select multiple="multiple" name="refresh" id="refresh">
    <option value="5" selected="true">5</option>
    <option value="10" >10</option>
    <option value="20" >20</option>
    <option value="30" >30</option>
    <option value="60" >60</option>
    </select>
    <script>
    $("select").multipleSelect({
    single: true
    });
    </script></p> <br>
    <label for="penne">SEL</label>
    <fieldset>
    <table width="100%" class="ui-widget ui-widget-content">
    <thead >
    <tr class="ui-widget-header ">
    <th><input type="checkbox" class="parentCheckBox" /></th>
    <th>Col</th>
    <th>Col2<th>
    <th>Col3</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td><input type="checkbox" name="1" class="childCheckBox" ></td>
    <td>1</td>
    <td>2</td>
    <td>3/td>
    </tr>
    <tr>
    <td><input type="checkbox" name="2" class="childCheckBox" ></td>
    <td>4</td>
    <td>5</td>
    <td>6/td>
    </tr>
    </tbody></table>
    </fieldset>
    </fieldset>
    </form>
    </div>
    <div id="users-contain" class="ui-widget">
    <form id="form">
    <div>form Tempo<input type="text" name="time" /></div>
    <div>form Refresh<input type="text" name="refresh" /></div>
    <div>form Box1<input type="text" name="1" /></div>
    <div>form Box2<input type="text" name="2" /></div>
    </form>
    </div>
    <button id="create-user" class="ui-button ui-state-default ui-corner-all">
    Crea nuovo elemento</button>
    </div><!-- End demo -->
    </body>
    </html>


    Fatto!
    Ora spero di essere stato chiaro.

  8. #8
    Nessun aiuto??

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Troppo complesso studiarsi il codice, metti una pagina online e riporta qui il link, forse vedo lo script in azione si capisce il bud
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.