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

    Modifica prezzo in base all'oggetto scelto

    Sera a tutti,
    ho implementato un script js che in base all'oggetto scelto tramite un select dall'utente cambia il prezzo registrato all'interno di una variabile hidden e quello stampato all'interno di una span.
    Il problema è che sebbene abbia impostato il form in maniera tale da richiamare la funzione ogni volta che viene cambiato l'oggetto selezionato, il prezzo non viene mai aggiornato.
    Cosa c'è che non va?
    Funzione js:
    codice HTML:
    function richieste(){
        oggetto = document.getElementById('item_name').value;
        var ajax = new XMLHttpRequest();
        if(ajax){
            ajax.open("post", "prezzi.php", true);
            ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
            ajax.setRequestHeader("connection", "close");
            ajax.send("oggetto=" + oggetto);
            ajax.onreadystatechange = function(){
                if(ajax.readyState == 4){
                    if(ajax.status == 200 || ajax.status == 304){
                        testo = ajax.responseText;
                        document.getElementById('amount').innerHTML = testo;
                        document.getElementById('amount').removeAttribute('disabled');
                        document.getElementById('prezzo').value = testo;
                    }
                }
            }
        }
    }
    Pagina prezzi.php:
    codice HTML:
    <?php
        session_start();
        require_once('mysqlconn.php');
        mysql_select_db($database, $utenti);
        $oggetto = $_POST['oggetto'];
        $search = mysql_query("SELECT * FROM prodotti WHERE nome = '".$oggetto."' ") or die (mysql_error());
        $result = mysql_fetch_array($search);
        echo $result['prezzo'];
    ?>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Prova cosi
    codice:
    function richieste(){
        oggetto = document.getElementById('item_name').value;
        var ajax = new XMLHttpRequest();
        if(ajax){
            ajax.open("post", "prezzi.php", true);
            ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
            ajax.send("oggetto=" + oggetto);
            ajax.onreadystatechange = function(){
                if(ajax.readyState == 4 && ajax.status == 200){
                        var testo = ajax.responseText;
                        document.getElementById('amount').innerHTML = testo;
                        document.getElementById('amount').removeAttribute('disabled');
                        document.getElementById('prezzo').value = testo;
                    }
                }
            }
        }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Manca la parte html.

    Non avresti per caso dimenticato name="prezzo" nella definizione del campo hidden ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Ho provato con la modifica che mi hai dato Andrea, ma non cambia nulla. Posto anche la parte interessata del form.

    codice HTML:
    <select name="item_name" value="<?php echo $tipo; ?>" onLoad="richieste()" onChange="richieste()">
                                <option>Selezionare</option>
                                <?php $tipi = mysql_query("SELECT * FROM prodotti ") or die (mysql_error());
                                while($resrow = mysql_fetch_array($tipi)){
                                    echo "<option>".$resrow['nome']."</option>";
                                }?>
                            </select>
                            Prezzo: <span id="prezzo"></span><br>
                            <input type="hidden" name="amount" value="2.00"><!-- Prezzo-->

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Metti la pagina demo online e riporta qui il link
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Amount é un campo input. E l'input non ha innerHTML.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Sicuro di non aver invertito amount e prezzo ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Cambia la select cosi
    <select onchange="richieste()" value="" name="item_name" id="item_name">
    <option>Selezionare</option>
    <option>IMU</option> </select>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Ho modificato il form. Ho anche cambiato la funzione js:

    codice HTML:
    function richieste(){
        oggetto = document.getElementById('item_name').value;
        var ajax = new XMLHttpRequest();
        if(ajax){
            ajax.open("post", "prezzi.php", true);
            ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
            ajax.send("oggetto=" + oggetto);
            ajax.onreadystatechange = function(){
                if(ajax.readyState == 4 && ajax.status == 200){
                        var testo = ajax.responseText;
                        document.getElementById('amount').value = testo;
                        document.getElementById('amount').removeAttribute('disabled');
                        document.getElementById('prezzo').value = testo;
                    }
                }
            }
        }
    Ultima modifica di masternick; 19-08-2015 a 15:35

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.