aiuto:calcolo automatico dei campi input

scatenato

Nuovo Utente
13 Giu 2014
28
0
0
napoli
Ciao,
come potete vedere ho creato questo form con un campo select che prende dal db un prodotto
dalla tabella articoli e ogni prodotto ha un valore numerico che l'utente deve inserire manualmente nel campo input e alla fine preme sul pulsante calcola ed effettua il calcolo con il limite a 50.

quello che cerco di fare e che l'utente appena seleziona il prodotto il valore numerico associato si vada ha visualizzare nel campo input senza doverlo scrivere manualmente e venga effettuato l'addizione senza dover cliccare sul pulsante calcola e senza refresh della pagina.

facendo delle ricerche ho letto che fare quello che ho descritto lo posso fare solo con ajax/javascript.

l'aiuto che vi chiedo di darmi e quello di spiegarmi con esempi pratici per riuscire a semplificare il tutto e velocizzare le operazioni di inserimento del form.

il form funziona e spero nel vostro aiuto

Codice:
<form id="articoli" name="articoli" method="POST" action="<?php echo $_SESSION['PHP_SELF']; ?>"> <div id="punti"> 
<span>punti</span> 

<?php if(isset($_POST['calcola'])){ 
$g1 = $_POST['g1']; 
$g2 = $_POST['g2']; 
$g3 = $_POST['g3']; 

if(empty($g1) && empty($g2) && empty($g3)){ 

echo ("devi riempire tutti i campi.<a href='javascript:history.back();'>Indietro</a>"); }elseif( $g1+$g2+$g3 > 50) {

echo ("hai superato i 50 punti.<a href='javascript:history.back();'>Indietro</a>"); }else{ 
echo $g1+$g2+$g3 ; 
echo "<a href='javascript:history.back();'>Modifica</a>" ; } } ?>
</div> 
<label>articolo</label> 
<select name="articolo"> 
<?php$sql = "SELECT * FROM articoli ORDER BY prodotto";$result = mysql_query($sql);while($row = mysql_fetch_array($result)){echo "<OPTION VALUE=\"".$row["prodotto"]."\">".$row["prodotto"]."</OPTION>";
}?>
<input type="text" maxlength="2" name="g1" /></select>

<select name="articolo"> 
<?php$sql = "SELECT * FROM articoli ORDER BY prodotto";$result = mysql_query($sql);while($row = mysql_fetch_array($result)){echo "<OPTION VALUE=\"".$row["prodotto"]."\">".$row["prodotto"]."</OPTION>";
}?><input type="text" maxlength="2" name="g2" />
</select>

<select name="articolo"> <?php$sql = "SELECT * FROM articoli ORDER BY prodotto";$result = mysql_query($sql);while($row = mysql_fetch_array($result)){echo "<OPTION VALUE=\"".$row["prodotto"]."\">".$row["prodotto"]."</OPTION>";
}?>
<input type="text" maxlength="2" name="g3" />
</select>
<input type="submit" name="creare" value="CREA" />
<input type="submit" name="calcola" value="CALCOLA" />
</form>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
questa è sbagliata
PHP:
action="<?php echo $_SESSION['PHP_SELF']; ?>"
la variabile giusta non è SESSION ma SERVER
PHP:
action="<?php echo $_SERVER['PHP_SELF']; ?>"

Potresti evitare le 3 query creando un array dei prodotti con la prima e ciclarlo per tutte e 3 le select

Il valore in punti dei prodotti lo hai nel database?
 

scatenato

Nuovo Utente
13 Giu 2014
28
0
0
napoli
grazie per avermi risposto per avermi detto che la action non era giusta.
avevo gia pensato ad un array infatti nel codice inserito nella pagina e stato fatto con array.

ma passiamo al vero problema che mi interessa risolvere,come faccio io far visualizzare nel campo input il valore dei punti associato al prodotto che seleziona l'utente.

ti dispiacerebbe farmi un esempio pratico con la dovuta spiegazione che mi servira per imparare.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
volentieri, ma, non hai risposto alla mia unica domanda:
hai un campo con memorizzato il valore dei punti? come si chiama il campo?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Puoi provare cosi
PHP:
<?php
$conn = mysql_connect("localhost", "root", "");
$db = mysql_select_db("database");
$sql = "SELECT * FROM articoli ORDER BY prodotto";
$result = mysql_query($sql);
$prodotti = array();
while ($row = mysql_fetch_array($result)) {
    $prodotti[$row['idProdotto']] = $row["prodotto"] . " - " . $row["punti"];
}
?>
<script type="text/javascript">
    function calcolaPunti() {
        var a1 = document.articoli.articolo1.options[document.articoli.articolo1.selectedIndex].text.split("-");
        var p1 = parseInt(a1[1]);
        var a2 = document.articoli.articolo2.options[document.articoli.articolo2.selectedIndex].text.split("-");
        var p2 = parseInt(a2[1]);
        var a3 = document.articoli.articolo3.options[document.articoli.articolo3.selectedIndex].text.split("-");
        var p3 = parseInt(a3[1]);
        document.getElementById("punti").innerHTML = "punti " + (p1 + p2 + p3);
        
    }
</script>
<form id="articoli" name="articoli" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <div id="punti"> punti</div> 
    <label>articolo</label> 
    <select onchange="calcolaPunti();" name="articolo1"> 
        <?php
        foreach ($prodotti as $key => $value) {
            echo "<option value='$key'>$value</option>";
        }
        ?>
    </select>

    <select onchange="calcolaPunti();" name="articolo2"> 
        <?php
        foreach ($prodotti as $key => $value) {
            echo "<option value='$key'>$value</option>";
        }
        ?>
    </select>
    <select onchange="calcolaPunti();" name="articolo3"> 
        <?php
        foreach ($prodotti as $key => $value) {
            echo "<option value='$key'>$value</option>";
        }
        ?>
    </select>
</form>
non ho avuto il tempo di commentare
risolto questo problema ti consiglio di abbandonare l'estensione mysql e studiarti mysqli
 

scatenato

Nuovo Utente
13 Giu 2014
28
0
0
napoli
grazie per avermi aiutato e favoloso lo script che mi hai fornito.

e approfitto per chiederti un altra cosa come mai nella select mi visualizza il prodotto in ordine alfabetico e non visualizza la prima riga dove c'e scritto seleziona prodotto,infatti io vorrei che l'utente quando va alla pagina con il form che ho postato sopra in tutti i select venga visualizzato la scritta seleziona prodotto.

per il resto e tutto ha posto ti ringrazio e
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Puopi aggiungere una option prima di ogni ciclo
PHP:
<select onchange="calcolaPunti();" name="articolo1"> 
        <option value="0">Seleziona il prodotto</option>
        <?php
        foreach ($prodotti as $key => $value) {
            echo "<option value='$key'>$value</option>";
        }
        ?>
    </select>
e modificare il javascript cosi
Codice:
<script type="text/javascript">
    function calcolaPunti() {
        var p1 = p2 = p3 = 0;
        var a1 = document.articoli.articolo1.options[document.articoli.articolo1.selectedIndex].text.split("-");
        if(!isNaN(a1[1]))
            p1 = parseInt(a1[1]);
        var a2 = document.articoli.articolo2.options[document.articoli.articolo2.selectedIndex].text.split("-");
        if(!isNaN(a2[1]))
            p2 = parseInt(a2[1]);
        var a3 = document.articoli.articolo3.options[document.articoli.articolo3.selectedIndex].text.split("-");
        if(!isNaN(a3[1]))
            p3 = parseInt(a3[1]);
        document.getElementById("punti").innerHTML = "punti " + (p1 + p2 + p3);
        
    }
</script>
 
Discussioni simili
Autore Titolo Forum Risposte Data
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
S js per calcolo area [Aiuto per programmino!!] Javascript 15
M Aiuto!!! Variabili date per calcolo preventivo Classic ASP 0
E Aiuto per query PHP 8
R Aiuto ripristino sito web Presentati al Forum 0
L Aiuto con DataGridView Visual Basic 1
F Aiuto! cambio immagine di sfondo al cambio pagina HTML e CSS 2
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
D aiuto funzioni javascript Javascript 1
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
D Aiuto CSS in ELEMENTOR - Cambiare un testo CMS (Content Management System) 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
K Aiuto con file audio in html HTML e CSS 1
G Script notifiche dekstop aiuto Javascript 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
M Un aiuto da chi ha apple Mac e Software 0
P Richiesta di aiuto Presentati al Forum 1
A Aiuto per pagina php PHP 0
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
I Aiuto php Dependent Lookup PHP 0
R Aiuto con le query MS Access 2
M AIUTO ESERCIZIO JAVA Javascript 1
G Aiuto con htaccess e rewriterule PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
M Aiuto con inserimento immagini WordPress 6
D aiuto schermata photoshop Photoshop 0
L Aiuto per programma web php/mySQL PHP 2
A Aiuto php colore diverso PHP 10
L Aiuto creazione menu mancante WordPress 0
C Aiuto compiuto scuola PHP/MySQL PHP 2
G Insert into select - Aiuto MySQL 0
I Aiuto bash linux Programmazione 1
F Aiuto java script Javascript 2
R Cerco aiuto Offerte e Richieste di Lavoro e/o Collaborazione 7
I Aiuto query MySQL 8
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
motleyrulez Aiuto con un ciclo PHP 0
R Aiuto sito html Offerte e Richieste di Lavoro e/o Collaborazione 3
G Mi dite come faccio? Aiuto photoshop ? Photoshop 1
C prestashop paragamento contrassegno aiuto modulo E-Commerce 0
Michelebozzo [PHP] Rimuovere pubblicazione nome pagina ... aiuto! PHP 7
Caldus richiesta aiuto Mac e Software 0
R [Javascript] Aiuto su questo script Javascript 2
Z Gestionale in Php/mysql: Quanto farsi pagare? Aiuto! Discussioni Varie 0
Giacomo92 [HTML] AIUTO!! Regular Expression :( Offerte e Richieste di Lavoro e/o Collaborazione 15
T Aiuto per php7 e mysqli PHP 3
T mysql tutorial per importare tabelle access in mysql aiuto MySQL 2
K [Java] aiuto switch case Java 1
E salve tutti spero si essere di aiuto e di trovare aiuto Presentati al Forum 2

Discussioni simili