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

    ON CHANGE CheckField(this); e blocco select

    Dunque devo fare una cosetta un pochino particolare
    Sto creando un questionario a "cascata" con PHP e AJAX, il concetto è

    domanda 1 => rispondo ==> appare la domanda 2 etc.....

    la pagina in questione è òa seguente
    codice:
    <table width="98%" align="center" border="0" cellspacing="2" cellpadding="2">
    <tr><td class="testo_didascalia">Età:
    
    
    <select size="1" name="eta" onChange="CheckField(this);">
    <?php 
    for ($i=1; $i<=100; $i++){
    echo '<option value="'.$i.'">'.$i.'</option>';
    }?>
    </select></td></tr>
    </table>
    </fieldset>
    
    
    
    <div id="etacheck"></div>
    </td></tr></table>
    il js che mi trasmette i dati è questo
    codice:
    var AJAXForms = false;
    var LastField = null;
    var isIE = false;
    // on !IE we only have to initialize it once
    if (window.XMLHttpRequest) {
    	AJAXForms = new XMLHttpRequest();
    }
    
    function CheckField(field) {
    
      if(window.XMLHttpRequest) 
         {
           // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
          AJAXForms = new XMLHttpRequest(); 
           } 
           else if(window.ActiveXObject) 
           {
            try
            {
            // Internet Explorer 6 
            AJAXForms = new ActiveXObject("MSXML2.XMLHTTP"); 
            } 
    		        catch(e) 
    		        {
    			        // Internet Explorer 4,5 
    			        AJAXForms = new ActiveXObject("Microsoft.XMLHTTP"); 
    		        }
    		        } 
    	        else 
    	        {
    		        alert("Non è possibile creare l'oggetto che fa la richiesta http");
    		        return;
    	        }
      AJAXForms.onreadystatechange = processChange;
      AJAXForms.open("GET", "check_form.php?op=ajax&field=" +field.name+"&value=" + field.value);
    
      LastField = field.name;
      AJAXForms.send(null);
    }
    
    function processChange() {
      if (AJAXForms.readyState == 4) { 
      
        var  res = document.getElementById(LastField+"check");
        res.innerHTML = AJAXForms.responseText;
        res.style.visibility = "visible";
        
      }
    }
    response.write(AJAXForms);
    ----------------
    Ora, il mio problema sta nel fatto che così facendo è possibile variare le risposte precedenti, invece io vorrei man mano disabilitare le varie select che appaiono a cascata
    ----------------

    quancuno sa come posso fare questo?
    Tanto...lo fanno tutti... posso farlo anche io vero?

  2. #2
    fatto
    + semplice del previsto

    <script type='text/javascript'>
    function deactivate(select){
    select.disabled = true;
    }
    </script>


    <select size="1" name="eta" onChange="deactivate(this);CheckField(this);">
    Tanto...lo fanno tutti... posso farlo anche io vero?

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.