Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Select e input type

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34

    Select e input type

    Ciao a tutti!

    Ho una tabella in mysql con due colonne, codice e descrizione. Mediante una select con oneChange seleziono il codice e vorrei far comparire in un imput type la relativa descrizione.
    Ho provato con questo codice ma non funziona.....
    Qual'è l'errore?

    Codice PHP:
    <label> Tipo Prestazione: </label>
    <select name="tipoprest" onChange="mostraInfo(this.value)">
                                                    
      <?php
     
    //Seleziono quelli che sono i pazienti
     
    $query "SELECT codice,descrizione FROM tipoprestazione WHERE av=0";
    $result mysql_query($query);
                  while(
    $riga mysql_fetch_array($result)){
                   echo 
    "<option value='$riga[id]'>$riga[codice] $riga[descrizione] </option>";
                                      
            }
          echo 
    '<input type="text" name="codice" value="'.$riga['codice'].'" />';
                                              
    ?>
                                  
                                  </select>

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    per esempio che nella query non estrai l'id che poi provi a scrivere? E poi, invece di mischiare apici singoli, doppi etc etc, perché non scrivi pulito? Se non vuoi perdere traccia:
    Codice PHP:
    <select ...>
    <?php
    $query 
    "SELECT id,codice,descrizione FROM tipoprestazione WHERE av=0";
    $result mysql_query($query);
    while(
    $riga mysql_fetch_array($result)) {?>
      <option value="<?php echo($riga['id']);?>"><?php echo($riga['codice']." ".$riga['descrizione']);?></option>
    <?php                                  
    }
    ?>
    </select>
    E poi sistema un po' quella input text finale... che 'codice' dovrebbe mettere, visto che sta fuori dal while?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    Forse non mi sono spiegato bene....

    se inserisco input type all'interno del while come dici tu, stampo ,ovviamente, tutti i codici presenti nella colonna!!!
    A me serve solo il codice che ho selezionato nella select.

    Ad esempio se nella select seleziono un codice con descrizione nell'input type deve comparire solo quel codice selezionato, non tutti i codici come dici tu.

    Spero di essere stato più chiaro...

    Grazie per la risposta.

    Ti invio il sorgente della pagina:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type="text/javascript" src="ora/jquery-1.7.1.min.js"></script>
    
    		<link rel="stylesheet" media="all" type="text/css" href="ora/jquery-ui-1.8.16.custom.css" />
    		<script type="text/javascript" src="ora/jquery-ui-1.8.16.custom.min.js"></script>
    		<script type="text/javascript" src="ora/jquery-ui-timepicker-addon.js"></script>
    		
    		<script type="text/javascript">
    			
    			$(function(){
    				
    		
    				$('.example-container > pre').each(function(i){
    					eval($(this).text());
    				});
    			});
    			
    		</script>
    
    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Prenota</title>
    </head>
    
    <body>
     <script type="text/javascript">
                      var xmlhttp;
    
                          function mostraInfo(str)
                          {
                           xmlhttp=GetXmlHttpObject();
                                  if (xmlhttp==null)
                                   {
                                   alert ("Browser does not support HTTP Request");
                                      return;
                                    }
                                    var url="#";
                                     url=url+"?q="+str;
                                      xmlhttp.onreadystatechange=stateChanged;
                                      xmlhttp.open("GET",url,true);
                                      xmlhttp.send(null);
                                       }
    
                                         function stateChanged()
                                         {
                                         if (xmlhttp.readyState==4)
                                          {
                                          document.getElementById("info").innerHTML=xmlhttp.responseText;
                                           }
                                           }
    
                                           function GetXmlHttpObject()
                                            {
                                            if (window.XMLHttpRequest)
                                            {
                                            // code for IE7+, Firefox, Chrome, Opera, Safari
                                            return new XMLHttpRequest();
                                             }
                                             if (window.ActiveXObject)
                                             {
                                              // code for IE6, IE5
                                               return new ActiveXObject("Microsoft.XMLHTTP");
                                               }
                                               return null;
                                               }
              </script>  
    
    				
    				                                      <form method="post" action="#" id=settimana>
    			                                         
    			                                        <label><h1>Prenota Analisi</h1></label>                        
                                                       <label> Seleziona Paziente: </label>
    
                                                      <select name="tipopaz" onChange="mostraInfo(this.value)">
                                                     -->
    									  
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 116
    
    <option value=''>ytrfg78iopjmkgfr pippo paperino</option>
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 116
    
    
    <option value=''>dadadasdasd </option>
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 116
    
    <option value=''>trfd34rfghyt5654  Alfredo</option>                              </select>
                                                                                 
                                      
                                                                                <legend>Giorno: </legend>
                                                                                <select name="settimana" >
    
                                                                                    <option value="Lunedì" selected="selected" >Luned&igrave </option>
                                                                                     <option value="Martedì">Marted&igrave </option>
                                                                                    <option value="Mercoled&igrave">Mercoled&igrave </option>
                                                                                    <option value="Gioved&igrave">Gioved&igrave </option>                          
                                                                                    <option value="Venerd&igrave" >Venerd&igrave </option>
    
                                                                                    <option value="Sabato">Sabato</option>
                                                                                    <option value="Domenica">Domenica</option>                          
                                                                                     </select>
                                                                                   	 
    	                                                                              
            <div class="example-container">
    		       
    
    Inserire Ora</p>
    		      <div>
    		   	    <input type="text" name="example3" id="example3" value="" />
    		      </div>
    
              <script>   $('#example3').timepicker({}); </script> 
    </div>
                 
                            
                                                       <label> Tipo Prestazione: </label>
                                                      <select name="tipoprest" onChange="mostraInfo(this.value)">
                                                    
    									  
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 152
    
    
    <option value=''>AA01 PRELIEVO MICROBIOLOGICO </option>
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 152
    
    <option value=''>AA02 PRELIEVO SANGUE ARTERIOSO </option>
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 152
    
    
    <option value=''>AA03 PRELIEVO SANGUE VENOSO </option>
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 152
    
    <option value=''>AA04 5 IHA </option>
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 152
    
    
    <option value=''>AA05 17 OH-PROGESTERONE </option>
    
    Notice:  Undefined index: id in C:\xampp\htdocs\LDM\Prenota.php on line 152
    
    <option value=''>AA06 A1GLICOPROTEINA ACIDA </option><input type="text" name="codice" value="" />                              
                                  </select>
                 
                 
                 
                 
                 <input type="submit" name="invia" id="inv" value="Invia" />
                 </form>                                                                    
    
    
    
    </body>
    
    </html>

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    troppa roba. Allora, chiaramente manca qualche passaggio logico al tutto, ma niente paura. Il fatto è che una volta che PHP ha finito di scrivere le sue cosine e l'output è stato mandato al browser (ovvero visualizzi la pagina), la pagina stessa per il server è morta. Quindi l'azione di selezione nella select di per sè non può in alcun modo interagire con il textfield a meno di:

    - reinviare la pagina e pescare i dati (anche in modo asincrono - leggi AJAX - se un reload non ti piace)
    - giocare direttamente di javascript.

    Quello che vuoi fare tu non ha alcun senso. Inoltre non hai messo il sorgente della pagina, ma l'output (il che va bene, ma se e solo se accompagnato anche dal sorgente).
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    [/PHP*

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    La select funziona perfettamente, devo inserire il valore codice selezionato nel campo input type
    il codice sorgente della pagina:

    Codice PHP:
    <?php
     
    include 'config.php';
     
    connect(); //connessione al DB
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type="text/javascript" src="ora/jquery-1.7.1.min.js"></script>

            <link rel="stylesheet" media="all" type="text/css" href="ora/jquery-ui-1.8.16.custom.css" />
            <script type="text/javascript" src="ora/jquery-ui-1.8.16.custom.min.js"></script>
            <script type="text/javascript" src="ora/jquery-ui-timepicker-addon.js"></script>
            
            <script type="text/javascript">
                
                $(function(){
                    
            
                    $('.example-container > pre').each(function(i){
                        eval($(this).text());
                    });
                });
                
            </script>


    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Prenota</title>
    </head>

    <body>
     <script type="text/javascript">
                      var xmlhttp;

                          function mostraInfo(str)
                          {
                           xmlhttp=GetXmlHttpObject();
                                  if (xmlhttp==null)
                                   {
                                   alert ("Browser does not support HTTP Request");
                                      return;
                                    }
                                    var url="#";
                                     url=url+"?q="+str;
                                      xmlhttp.onreadystatechange=stateChanged;
                                      xmlhttp.open("GET",url,true);
                                      xmlhttp.send(null);
                                       }

                                         function stateChanged()
                                         {
                                         if (xmlhttp.readyState==4)
                                          {
                                          document.getElementById("info").innerHTML=xmlhttp.responseText;
                                           }
                                           }

                                           function GetXmlHttpObject()
                                            {
                                            if (window.XMLHttpRequest)
                                            {
                                            // code for IE7+, Firefox, Chrome, Opera, Safari
                                            return new XMLHttpRequest();
                                             }
                                             if (window.ActiveXObject)
                                             {
                                              // code for IE6, IE5
                                               return new ActiveXObject("Microsoft.XMLHTTP");
                                               }
                                               return null;
                                               }
              </script>  

    <?php 

         
    function disponibilita($str,$disp) {
             
    $fl=false;
                  if  (
    $str[0]==1) {$disp[]='Lunedì';
                 }if (
    $str[1]==1)  {$disp[]='Martedì'
                 }if (
    $str[2]==1)  {$disp[]='Mercoledì'
                 }if (
    $str[3]==1)  {$disp[]='Giovedì'
                 }if (
    $str[4]==1)  {$disp[]='Venerdì';
                 }if (
    $str[5]==1)  {$disp[]='Sabato'
                 }if (
    $str[6]==1)  {$disp[]='Domenica'
                 }
             
             
    $scelta=$_POST['settimana'];
        
            
    $lungh_arraycount($disp);
             for (
    $contatore=0$contatore $lungh_array$contatore++) {
             if (
    $disp[$contatore]==$scelta) {$fl=true;} 
            
    // echo "$disp[$contatore]
    ";
    }//for
            //echo "
    SCELTA EFFETTUATA".$scelta."<br/n>";
            //echo "
    FLAG".$fl."<br/n>"; 
            
            return 
    $fl;
            return 
    $str;
             }//function
     
                            if (!isset(
    $_POST['invia'])) { 
                                                                                //se non è stato premuto il tasto invia dal form, allora esegui il form
                      ?>
                    
                                                          <form method="
    post" action="#" id=settimana>
                                                         
                                                        
    <label><h1>Prenota Analisi</h1></label>                        
                                                       <
    labelSeleziona Paziente: </label>
                                                      <
    select name="tipopaz" onChange="mostraInfo(this.value)">
                                                     -->
                                          <?
    php
                                               
    //Seleziono quelli che sono i pazienti
                                                
    $query "SELECT cf,cognome,nome FROM `paziente`";
                                                
    $result mysql_query($query);
                                                while(
    $riga mysql_fetch_array($result)){
                                                echo 
    "<option value='$riga[id]'>$riga[cf] $riga[cognome] $riga[nome]</option>";
                                               }
                                              
                                              
    ?>
                                  </select>
                                                                                 
                                      
                                                                                <legend>Giorno: </legend>
                                                                                <select name="settimana" >
                                                                                    <option value="Lunedì" selected="selected" >Luned&igrave </option>
                                                                                     <option value="Martedì">Marted&igrave </option>
                                                                                    <option value="Mercoled&igrave">Mercoled&igrave </option>
                                                                                    <option value="Gioved&igrave">Gioved&igrave </option>                          
                                                                                    <option value="Venerd&igrave" >Venerd&igrave </option>
                                                                                    <option value="Sabato">Sabato</option>
                                                                                    <option value="Domenica">Domenica</option>                          
                                                                                     </select>
                                                                                        
                                                                                      
            <div class="example-container">
                   

    Inserire Ora</p>
                  <div>
                       <input type="text" name="example3" id="example3" value="" />
                  </div>
              <script>   $('#example3').timepicker({}); </script> 
    </div>
                 
                            
                                                       <label> Tipo Prestazione: </label>
                                                      <select name="tipoprest" onChange="mostraInfo(this.value)">
                                                    
                                          <?php
                                               
    //Seleziono quelli che sono i pazienti
                                                
    $query "SELECT codice,descrizione FROM tipoprestazione WHERE av=0";
                                                
    $result mysql_query($query);
                                                while(
    $riga mysql_fetch_array($result)){
                                                echo 
    "<option value='$riga[id]'>$riga[codice] $riga[descrizione] </option>";
                                      
                                               }
                                           echo 
    '<input type="text" name="codice" value="'.$riga['codice'].'" />';
                                              
    ?>
                                  
                                  </select>
                 
                 
                 
                 
                 <input type="submit" name="invia" id="inv" value="Invia" />
                 </form>                                                                    
    <?php }//isset 
                      
    else { // se è stato premuto il tasto invia
                      
    $cont=0;
    $query "SELECT disponibilita,cognome FROM medico";
                        
    $result mysql_query($query);
                        while(
    $riga mysql_fetch_array($result)){
            
    /*        echo "ID: $riga[id] <br/n>";
                        echo "Codice: $riga[codice] <br/n>";
                        echo "Codice Fiscale: $riga[cf] <br/n>"; */
                        
                        
                    //    echo "Disponibilit&agrave: $riga[disponibilita] <br/n>";
                        
                        
    $stringa=$riga['disponibilita'];
                        
    $cognome=$riga['cognome'];
                        
    $disp=false;
                        
    $val=disponibilita($stringa,$disp);
                        echo 
    "Disponibilit&agrave: $stringa <br/n>";
                        if (
    $val) {echo "Il Medico ".$cognome." è disponibile ".$_POST['settimana']; $cont=1; exit; }
                        
    //echo "VALORE MAIN: ".$val."<br/n";
                        
    }//while
                        
    if ($cont==0) {echo "NESSUN MEDICO &Egrave DISPONIBILE ".$_POST['settimana'];
                                 
    //provo con un assistente
                                     //abilita assistente
                                
    echo "PROVO CON UN ASSISTENTE"
                                
                                
                                
                          
                          
    $query "SELECT tipoPrestazione,assistente FROM abilitaassistente WHERE tipoPrestazione='(qui dovrei inserire il codice selezionato dalla select)'";
                          
    $result mysql_query($query);
                        while(
    $riga mysql_fetch_array($result)){
                                 
    $assist=$riga['assistente'];
                                echo 
    $assist;
                                 }
    //while
                                  // if ($result) {  echo $assist; }
                        
                        
    }//IF
                                


    }//else

    ?>



    </body>
    </html>

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora ripetiamo le consecutio temporum di una richiesta (utente richiama pagina nel browser) al server:

    digito indirizzo -> apache/server che sia elabora richiesta -> esegue tutto il codice server-side (PHP) del caso e muore -> la pagina morta viene mandata come risposta al browser ((X)HTML).

    Quello che fai sulla select, che funziona perfettamente e ne sono convinto anch'io, avviene DOPO quello che provi a scrivere nel textfield. Allora bisogna intercettare la selezione (client-side) e operare sul textfield.

    Quindi il tuo problema si sposta in client-side, ovvero in javascript, o resta in server-side (riscrivendo un po' tutta la pagina). Dicci un po' tu come vuoi proseguire.

    Qui hai un "a grandi linee" esempio di soluzione client-side
    codice:
    <form>
    <select name="disney" onchange="this.form.elements['selezione'].value=this.value;">
      <option value=""></option>
      <option value="Ciccio">Ciccio</option>
      <option value="Pippo">Pippo</option>
      <option value="Pluto">Pluto</option>
      <option value="Topolino">Topolino</option>
    </select>
    <input type="text" name="selezione" />
    </form>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    Ok!
    In client-side come devo cambiare il codice?
    Grazie!

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ce l'hai lì, nel mio post precedente.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.