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

    problemi di riconoscimento di una variabile di una funzione

    ho una pagina php del tipo show.php?pr=100&sc=50 (prezzo e sconto come variabili)
    nella pagina devo inserire la quantità di ogetti e madarla ad una pagina successiva (che va a comporre una mail con i dati ricavati)
    codice:
    <head>
    <script>
    function moltiplica(){
    campo1=document.prova.quant; // campo di inserimento
    campo2=document.prova.qq; // campo risultato (readonly)
    campo2.value=campo1.value*<?php echo $_GET['pr']  *((100- $_GET['sc'] )/(100));?>
    }
    </script>
    </head>
    <body>
      <form name="prova" id="prova">
        <input type="text" size=4 name="quant" id="master" onkeyup="moltiplica()">
      <h2>Offerta: <input type="text" size=4 name="qq" id="qq" readonly="true"></h2>
    
    <?php $fn = number_format($qq, 2);?>
    
    <a href="/buy.php?oggetto=<?php echo $_GET['tit'];?>%20-%20<?php echo $_GET['t2'];?>%20-%20Prezzo:<?php echo $fn;?>"><center>Acquista</center></a>
    </form>
    </body>
    </html>
    ma nella pagina successiva, sia che il risultato fosse maggiore o minore di 50, il valore riportato è 0.
    e' evidente che il prodotto calcolato non "esce" dalla funzione e quindi Vi chiedo: come si fa a trasformare qq in una variabile su cui lavorare nel php?
    grazie mille

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Stai facendo un pastrocchio.
    Non hai capito come funzionano PHP e Javascript, non puoi farli comunicare come fai tu.
    PHP è lato server, una volta che vedi la pagina è come se non esistesse più, perché ormai non ti trovi più sul server, ma sul client e lì funziona Javascript.

    Per inviare dati da Javascript a PHP devi usare AJAX, come ti ho già detto tra l'altro, ma per fare ciò, il codice PHP deve essere su un altro file, non sullo stesso dove c'è il codice Javascript altrimenti ti trovi che il file chiamante è anche quello chiamato e fai un casino.

    Devi rivedere la logica del tuo codice, così non va bene e se stai gestendo soldi veri, lascia perdere e fallo fare a chi sa cosa fare o rischi di fare un macello.

  3. #3
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    Stai mischiando troppo PHP e javascrip, non puoi usare un form (che lavora con javascript) e mandare i dati a un altra pagina tramite un link.
    Le soluzioni sono due o usi solo javascript(che però da quanto vedo si tratta di acquisti ed essendo javascript lato client non è molto sicuro) o usi solo PHP.
    Con php è molto semplice:
    fai il form e nel tag inserisci l'action, che sarebbe la pagina che deve elaborare i dati:
    codice HTML:
    <form method="POST" action="pagina2.php">
    e poi in pagina2.php fai tutti i lavori con php prendendo i dati col $_POST.
    E poi mettere un input type="submit" al posto del link.

    P.S. Javascript e PHP non possono interagire tra loro in questo modo, perchè uno è lato client e l'altro lato server, quando viene caricata una pagina php tutto il codice php è già stato elaborato, quindi non può essere più richiamato(se non con ajax) mentre javascript viene usato dal client, quindi senza ricaricare la pagina.


    EDIT: Alhazred ha risposto mentre stavo scrivendo.
    Ultima modifica di Disema; 19-10-2014 a 23:19

  4. #4
    Vi ringrazio per aver risposto.
    Una piccola precisazione:
    se stai gestendo soldi veri, lascia perdere e fallo fare a chi sa cosa fare o rischi di fare un macello
    non sono un ragazzino, ho 52 anni e sono commerciante da oltre 30 (in un'attività di oltre 120 anni). ho un sito (autoprodotto, è vero) da cui attualmente la gente può acquistare l'articolo proposto ma dove non c'è la possibilità di sceglierne la quantità. Quello che sto cercando di implementare è partanto un moltiplicatore che mostri, al variare della quantità richiesta, il prezzo di acquisto finale, prima di andare a spedire l'ordine (semplicemente inviando una mail). Sto cercando di fare questo perchè consapevole che molte persone preferiscano pagare contrassegno al corriere (a domicilio) invece di anticipare "ad uno sconosciuto" i loro soldi, cosa che mi sarebbe facilissima con un simplecart qualsiasi.
    Ripeto, ringrazio per la risposta ma, invece di far "sculacciate virtuali" ad uno che prova a scrivere un php (o uno script) per dare un servizio in più ai propri clienti, gradirei, se fosse possibile, un aiuto ad arrivare al'obiettivo che mi sono proposto. Grazie a chi vorrà farlo
    Ultima modifica di abnormal62; 20-10-2014 a 09:02

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da abnormal62 Visualizza il messaggio
    Ripeto, ringrazio per la risposta ma, invece di far "sculacciate virtuali" ad uno che prova a scrivere un php (o uno script) per dare un servizio in più ai propri clienti, gradirei, se fosse possibile, un aiuto ad arrivare al'obiettivo che mi sono proposto. Grazie a chi vorrà farlo
    Visto che siamo coetanei mi permetto di ricordarti che il forum non è un help-desk o un servizio assistenza, quando non si hanno conoscenze di base dei linguaggi non puoi pretendere che ti si spieghi passo passo cosa fare, soprattutto quando si tratta di soldi.
    Ora hai tre possibilità:
    A) Ti studi le basi del php e del javascript per capire come funzionano e quando funzionano
    B) Affidi il lavoro a chi ti ha sviluppato il sito (o a programmatore esperto)
    C) Offri (anche gratis nella sezione privati) il lavoro nella sezione che modero (leggendo attentamente i regolamenti)
    Saluti.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.