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

    script per evento onChange

    Ciao,
    ho un form PHP composto da alcuni campi input e da una select (combobox) le cui opzioni sono prelevate da una colonna di un DB mysql.
    La select contiene un elenco (nome + cognome) dei collaboratori.
    Dato che potrebbero esserci casi di omonimia, in seguito alla selezione di un'opzione, vorrei che coparisse nel form (sotto la combobox) un singolo campo input con il codice fiscale corrispondente al collaboratore selezionato (se non ci sono omonimi), o un'altra combobox per la scelta del codice fiscale corretto in caso di più record con stesso nome e cognome.

    In pratica devo poter chiamare, all'evento onChange, una funzione javascript (???) a cui passare l'opzione combobox selezionata, e questa funzione dovrà a sua volta passarla a uno script PHP che si dovrebbe occupare della query select MySQL.

    Codice PHP:
    <div><label>Collaboratore</label>
    <select class="input_height" name="collaboratore" onChange="get_cf(this.value)">
    <option> </option>
    <?php
    //metto i risultati della query in un array e poi faccio un ciclo
    while($row mysql_fetch_array($query))
    {
    Echo 
    "<option value=\"".$row['collaboratore']."\">".$row['collaboratore']."</option>";
    }
    ?>
    </select></div>


    codice:
    <script type="text/javascript">
    		function get_cf(option_selected){
    		...
    		//CHIAMATA a get_cf.php + PASSAGGIO OPTION???
    	        ...
    			}
    </script>

    get_cf.php:
    Codice PHP:
    ....
    ....
    $query mysql_query("SELECT cf FROM collaboratori_int WHERE cognome_nome= "??????");
    ....
    //Restituzione parametri???
    ... 
    Se ha un senso quello che ho scritto e che vorrei fare, mi dareste qualche consiglio riguardo allo script js e al passaggio dei parametri?

  2. #2
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Ciao,

    supponendo che il combo è dentro un form, per fare quello che hai descritto, potresti fare che sul change del combo, fai il submit del form, recuperi la variabile del combo, e in base a quella, ti crei la query e un nuovo combo con gli eventuali valori di codici fiscali associati al campo selezionato.

    In questo modo, c'è bisogno di aggiornare la pagina.

    Diversamente potresti usare jQuery.post()...


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  3. #3
    Grazie per l'aiuto

    non conoscevo la possibilità di associare la submit() del form all'evento onchange.
    Sono riuscita a fare quello che volevo, ma non del tutto.
    Passo la submit a un file esterno .php dove accedo al DB mySQL e recupero il codice fiscale.

    Codice PHP:
    <form name="modulo" method="POST" action="get_cf.php" >
    ...
    <
    div><label>Collaboratore</label>
        <
    select class="input_height" name="collaboratore" onChange="modulo.submit()">
        <
    option> </option>
    ... 


    get_cf.php:
    Codice PHP:
    <?php
    ...
    ...
    $COLL=$_POST['collaboratore'];
    $query mysql_query("SELECT cf FROM collaboratori_int WHERE cognome_nome='$COLL'");
                
    if (!
    $query) {
    $message  'Invalid query: ' mysql_error() . "\n";
    $message .= 'Whole query: ' $query;
    die(
    $message);
    }
                
    if (
    mysql_num_rows($query)==1){    
    $row mysql_fetch_array($query);
    echo 
    '<div><label>Codice Fiscale</label><input name="cf"; size="40"; type="text"; value="'.$row['cf'].'";></div>';
    }     
                
    else {    
    echo 
    "<div><label>Codice Fiscale</label><select class='input_height'; name='cf';>";echo "<option> </option>";
            
    while(
    $row mysql_fetch_array($query))    {
    echo 
    '<option>"'.$row['cf'].'"</option>';
    }
    echo 
    "</select></div>";
    }
            
    ?>

    Ma l'obiettivo come tu stesso mi hai detto era evitare di ricaricare la pagina, io l'ho addirittura cambiata. Come faccio a stare nello stesso form? Dove inserisco il codice PHP che esegue la query SQL per il codice fiscale? In altre parole a chi passo la submit per stare nello stesso form?

    Forse a quest punto dovrei anche cambiare sezione...

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.