Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Form passaggio variabili select javascript + php

    Ciao a tutti, ho un problema semplice/complicato.
    Devo realizzare un form in cui le persone scelgono quanto prendere di un determinato prodotto,
    (1 pezzo fino a 50 pezzi) e in automatico il sistema calcola la quantità del prodotto in base al numero di pezzi selezionati, l'iva e il totale.

    Riguardo al discorso dei calcoli no problem, tutto semplice.

    Il problema riguarda come far passare il valore del numero dei pezzi a php
    e come aggiornare i calcoli quando si cambia la quantità (quindi penso javascript)

    Io per adesso ho messo

    codice:
    <td><select onchange="window.location.href+=''+this.options[this.selectedIndex].value;">
    <option value="">Seleziona n° Cartoni</option>                                 
    <?php $array_cartoni = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50',);
    foreach ($array_cartoni as $k => $v) {
       echo "<option value=\"n_cartoni=".$k."\" name=\"n_cartoni\">".$v. </option>"; 									
    //scorri tutto l'array... in $k avrai le chiavi in $v i valori 									} 								
    ?>
    </td>
    per il discorso della quantità.

    Mentre l'inizio del form è

    codice:
    <form method="post" action="azioni.php">

    Qualcuno sa darmi una mano??
    E' solo questione come capire il passaggio e cosa fare realmente a livello di codice....

    Grazie mille a tutti!
    Manuel

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ad occhio direi che ti stai complicando la vita.
    Innanzitutto, è davvero necessario ricaricare la pagina? Ovvero, devi per forza far fare i conti a PHP oppure puoi fare i conti in javascript (quindi sul client) e poi inoltrare la pratica totale al server, dove ovviamente rifarai i conti (ma una sola volta, invece che invocare il server ogni volta che la select viene toccata)?

    Per popolare la select l'array non serve a niente.
    Codice PHP:
    <select name="n_cartoni" ...>
      <option value="0">Seleziona # cartoni</option>
    <?php for ($i 1$i <= 50$i++) {?>
      <option value="<?php echo($i);?>"><?php echo($i);?></option>
    <?php ?>
    </select>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Torno al lavoro e trovo questa bellissima risposta, grazie Andrea!

    Con il tuo codice funziona, ecco il mio punto.

    1. La select funziona però come faccio a far capire il valore che ha preso la select
    a php e di conseguenza fargli fare i calcoli?

    2. Io dovrei far vedere tramite javascript già in anteprima il costo totale
    che dovrà sostenere, quindi per esempio seleziona 2 cartoni, il costo nella
    tabella raddoppia ecc, non capisco come poterlo realizzare..
    come si può fare?

    ps> si, è come dici tu, volevo far fare in javascript e dopo in php, per questo avevo usato
    codice:
    <select onchange="window.location.href+=''+this.options[this.selectedIndex].value;">
    Grazie di tutto
    Manuel

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Se vuoi procedere in javascript (lascia a PHP solo il controllo finale, ad esempio prima del checkout e dunque del pagamento, per ovvie ragioni), senza sovraccaricare di una chiamata per ogni modifica alla select, potresti usare qualcosa del genere (ridotto all'osso)
    codice:
    <html>
    <head>
    <script language="javascript" type="text/javascript">
    function calcolaTotale(quanto) {
      var tot = parseInt(quanto)*50;
      document.getElementById("totale").innerHTML = tot+" EUR";
    }
    </script>
    </head>
    <body>
    
    
    Costo unitario: 50 EUR</p>
    <select name="myselect" onchange="calcolaTotale(this.value);">
      <option value="0">Seleziona quantità</option>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
    </select>
    <div id="totale">0 EUR</div>
    </body>
    </html>
    ovviamente da adattare alle tue necessità. Se procedi in questa direzione, chiedi ai moderatori di spostare la discussione in javascript.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Ottimo, thanks.
    Al posto di
    codice:
      <option value="0">Seleziona quantità</option>   <option value="1">1</option>   <option value="2">2</option>   <option value="3">3</option>   <option value="4">4</option>
    Potrei combinare il php di prima con javascirpt?
    quindi passare la variabile di php in javascript...
    per questione di lunghezza di codice...
    se devo scrivere ogni singola option diventa lunghissimo...

    Se è troppo complicato va bene lo stesso...

    ALtra question: per aggiornare gli altri campi input del form con i calcoli fatti con javascript
    come si fa (esempio l'iva ecc... ) ?
    Sto cecando in giro ma non riesco a modificare nulla....

    Grazie!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    certo, l'esempio di prima diventerebbe:
    Codice PHP:
    <html>
    <head>
    <script language="javascript" type="text/javascript">
    function calcolaTotale(quanto) {
      var tot = parseInt(quanto)*50;
      document.getElementById("totale").innerHTML = tot+" EUR";
    }
    </script>
    </head>
    <body>


    Costo unitario: 50 EUR</p>
    <select name="myselect" onchange="calcolaTotale(this.value);">
      <option value="0">Seleziona quantità</option>
    <?php
      
    for ($i 1$i <= 50$i++) {
    ?>  <option value="<?php echo($i);?>"><?php echo($i);?></option>
    <?php }
    ?>  
    </select>
    <div id="totale">0 EUR</div>
    </body>
    </html>
    Per quanto riguarda l'aggiornamento di eventuali altri campi del form, anche qui è materia di javascript... c'è da recuperare il campo da andare a modificare (tramite id, o name nel form) e quindi settarne il valore... se ti sembra aramaico, conviene che prima cominci con le guide a javascript che trovi qui sul sito (in alto, sezione "Siti" -> Javascript)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    ok, javascript + o - risolto.
    Ora sorge una nuova "sfida"
    Il successivo passaggio è una pagina riepilogativa dell'ordine con
    un ulteriore form in cui l'azienda/persona inserisce i suoi dati e
    poi effettua il pagamento con carta/bonifico/paypal.

    Dato che tutti i calcoli son stati fatti con js come faccio a passarli a php?

    il 1 form è con method POST però le variabili che mi interessano
    sono in js...

    Grazie mille!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Falso: se il tuo form è compilato, quando lo mandi in POST, allora nella pagina target avrai tutti i dati del form in $_POST. I calcoli li DEVI rifare comunque.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    c'è un modo per evitare di rifare i calcoli??
    perchè praticamente, il form è solo
    quella select e basta...

    oppure quale soluzione suggerisci tu?

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    No, i conti li devi rifare per un fatto di sicurezza: la prima considerazione è che altrimenti chiunque potrà modificare il totale e sistemarsi il conto a modo suo.
    <´¯)(¯`¤._)(¯`»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 © 2024 vBulletin Solutions, Inc. All rights reserved.