[Javascript] Estrazione dal database di un valore in base ad una scelta

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve, avrei bisogno di uno script js da affiancare ad un sistema di creazione fatture in php/mysql che permetta di estrarre un valore (editabile, quindi inseribile in un campo input e possibilmente convertibile in una variabile php) in base ad una precedente scelta fatta dall'utente tramite un campo select.

Mi spiego meglio: mettiamo che nella form per la creazione della fattura ho un campo select con tutti i servizi (estratti da un altra tabella del database). Selezionando un servizio in automatico in un altro campo avrò il suo prezzo (presente nella stessa tabella del database dove ho registrato il servizio). Quest'ultimo dovrà poter essere editabile e vorrei che risulti come variabile php così da poterla lavorare più facilmente.

Grazie a tutti per l'aiuto.
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.404
339
83
Perchè in JS e non in PHP?
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Ciao Max, perché vorrei che il prezzo appaia dinamicamente, ovvero che venga mostrato nella form appena l'utente selezioni l'opzione desiderata, e credo che non si possa fare tramite php ma solo in javascript.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
credo che non ti basti js ma ti ci voglia ajax+php, un po che quando con una <selct> selezioni una regione e ti appare una <select> con le provincie della regione selezionata.
penso che max1 sappia farlo (io l'ho fatto ma scopiazzando a dx e sx)
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.404
339
83
Vedi qui!
Select dinamica per scelte multiple
Ovvio che al posto dei link dovrai mettere le tue istruzioni
Se invece vuoi estrarre i dati da un database in base alle scelte la cosa è diversa e le select devono essere abbinate a PHP
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
potresti provare (ocio ho detto provare) a fare una cosa del genere, ho "cercato" di adattare quello che ho copiato per le regioni/province/comuni.
però non so assolutamente se funziona (@max1 potrebbe darci un occhio)
quindi due pagine php.
una con il form con la select e il campo che si dovrebbe riempire con la scelta
PHP:
<!DOCTYPE HTML>
<html>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
            $(document).ready(function(){
                prezzi();//comuni()
                $("select").change(function(){
                    prezzi();//comuni()
                })
            })
            function prezzi() { //comuni()
                $.ajax({
                    type: "POST",
                    url: "ricerca.php",
                    data: $("#ricerca").serialize(),
                    success: function(response){
                        eval(response);
                    }
                });
            }
</script>
<head>
<body>
<?php
if(isset($_POST['invia'])){
    var_dump($_POST['sezione']);
    var_dump($_POST['prezzo']);
    //i vari controlli necessari ecc....
}
?>
<form id="ricerca" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <select name="servizio">
        <option value=""></option>
    </select>
    <input name="prezzo" type="text" value="">
    <br>
    <input type="submit" name="invia" value="invia">   
</form>
</body>
</html>
e una pagina ricerca.php che riempie il campo prezzo in funzione della scelta
PHP:
<?php
// recupero vaolori delle select
$servizio = $_REQUEST['servizio'];
require_once "../_connessione/connessione.php";
$query = mysql_query("SELECT * FROM servizi ORDER BY sezione");//la tabella in cui hai le varie sezioni
// svuoto la select regione
echo "$('select[name=\"servizio\"]').empty();";
// aggiungo una option vuota
echo "$('select[name=\"servizio\"]').append('<option value=\"\">&darr;&nbsp;&darr;</option>');";
while ($row = mysql_fetch_array($query)) {
    // imposto il selected sull'eventuale regione scelta
   $selected = "";
    if ($row['id'] == $servizio) {
        $selected = "selected=\"selected\"";
    }
    // popolo la select
    echo "$('select[name=\"servizio\"]').append('<option $selected value=\"" . $row['id'] . "\">" . ($row['servizio']) . "</option>');";
}
// se è stata scelta una regione
if (!empty($sezione)) {
    // estraggo il prezzo della sezione scelta
    //$query = mysql_query("SELECT prezzo FROM servizio WHERE id_servizio ='$servizio'");//se il prezzo è in una tabella diversa
    $query = mysql_query("SELECT prezzo FROM servizi WHERE id ='$servizio'");//se il prezzo è nella stessa tabella
    // svuoto il campo del prezzo
    echo "$('input[name=\"prezzo\"]').empty();";
    $row =  mysql_fetch_array($query);
    // popolo il campo prezzo
    echo "$('input[name=\"prezzo\"]').append('value=\"".$row['prezzo']. "');";
}
?>
è evidente comunque che devi adattare i nomi dei campi/tabelle/variabili a quello che hai tu
poi @Max1 dacci un occhio farebbe comodo anche a me che funzionasse
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
In rete ho trovato un interessante esempio di select dinamica che ho provato a riadattare, anche seguendo i vostri consigli, in base alle mie esigenze. Lo devo provare nell'intera form ma per ora il risultato è soddisfacente. L'unica cosa è che vorrei sostituire la seconda select con un classico campo input di testo, quindi ottenere il risultato come value e non come option, sapreste dirmi come si fa? Lo script è questo (forse ho mischiato php e javascript in modo poco ortodosso dato che Komodo mi restituisce un errore, ma funziona).

HTML:
<script language="javascript"> 
/*Questa funzione legga il valore passato come parametro e dato il valore
aggiunge delle opzioni al secondo campo*/
function selezionaOpzioni(scelta)
{ 
/*Resetto le opzioni precedenti del campo*/
var importo = document.form.importo; 
importo.options.length = 0;
/*verifico la scelta e aggiungo i campi*/
<?php
    $quary = "SELECT id, importo FROM $tablePrestazioni ORDER BY descrizione";
    if ($result = mysqli_query($mysqli_connect, $quary))
    {
        while ($row = mysqli_fetch_array($result))
        {   
?>
            if (scelta == "<?php echo $row[0] ?>") { 
            importo.options[importo.options.length] = new Option('<?php echo $row[1] ?>');
            }
<?php
        }
    }
?>   
}
/*questa funzione prende il valore del campo_princilale
e fa una chiamata alla funzione selezionaOpzioni sfruttando il parametro*/
function aggiornaOpzioni(scelta){
    var valore_selezionato = document.form.prestazione.selectedIndex;
    var campo = document.form.prestazione.options;
    selezionaOpzioni(campo[valore_selezionato].value);
}
</script> 

<form name="form"> 
Prestazione:
<select name="prestazione" size="1" onChange="aggiornaOpzioni();">
<?php
$quary = "SELECT id, descrizione FROM $tablePrestazioni ORDER BY descrizione";
if ($result = mysqli_query($mysqli_connect, $quary))
{
    while ($row = mysqli_fetch_array($result))
    {
?>
    <option value="<?php echo $row[0] ?>"><?php echo $row[1] ?></option>
<?php
    }
}


?>
</select> 
<br /> 
<br /> 
Importo:
<select name="importo" size="1"> 
</select> 
</form>
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Javascript e html - estrazione EXIF da jpg con link per geolocalizzazione google maps Javascript 0
L countdown multiplo javascript Javascript 1
S Problemi Javascript + Aruba Javascript 2
M Inviare un file su un server remoto con JavaScript Javascript 0
T a href="javascript:;" Javascript 0
F Creare elementi html con javascript Javascript 4
A pulsante di update campo mysql con javascript Javascript 2
8 Javascript - PDF Form Javascript 0
B javascript per problemi con pdf e Safari Javascript 0
N informazione javascript Programmazione 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
P javascript:document.forms Javascript 7
S Consiglio esercizio Javascript Javascript 2
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
P Passaggio id php a javascript PHP 6
E lettura da un Database con Javascript jQuery 2
V TRIS in javascript Javascript 1
IClaude Funzione Javascript Javascript 8
Alex_70 Javascript date color Javascript 3
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
I Passare dei parametri in javascript PHP 0
Shyson Meglio Javascript o HTML? Javascript 4
M Chiamare pagina php da javascript Javascript 8
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
D Javascript per il download dei dati Javascript 0
grgfede Problema javascript con aruba Javascript 1
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
W Modificare il Type di un Input box in javascript ovunque si trovi Javascript 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
G Quiz Javascript Javascript 4
A [Javascript] Scrittura su più campi contemporaneamente Javascript 19
F classic asp popolare combo box javascript Presentati al Forum 1
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
F [Javascript] comando innerHTML non funziona Javascript 5
alexice51 proggrammi per scrivere in javascript? Javascript 3
max1974 [Javascript] Accordion aria-exspanded Javascript 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
O [Javascript] Conflitto Jquery: forse... Javascript 0
M [Javascript] Canvas js css Javascript 1
M Programmazione web HTML, CSS e JavaScript Offerte e Richieste di Lavoro e/o Collaborazione 6
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1
A Creare con Javascript un percorso all'interno di uno spazio Javascript 0
D [Javascript] inserire uno script in un file php Javascript 6
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
K [javascript] Tecnica per rilevare celle contenenti caratteri ricevute in dinamico Javascript 1
F [JavaScript] Ottenere il CSS dopo transform: scale() e transform-origin Javascript 0
S [Javascript] Problema costrutto if Javascript 0
I [Javascript] window.location.href porta alla nuova pagina e ritorna incomprensibilmente. Javascript 0

Discussioni simili