Pretvaranje js varijable u PHP SESSION varjablu

2

Pretvaranje js varijable u PHP SESSION varjablu

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

session start se podrazumeva a već koristim hidden za tu prokletu TOTAL al nju dobijem praznu nakon submita, a sve ostale vrednosti varijabli koje učestvuju u kalkulaciji dobijem pojedinačno.



A meni treba njihov total, koji inače dobijem kad submitujem na istoj strani ...

NA prvoj strani imam
if(isset($_POST['go'])){        $porez = 0.05;    //$porez = $_POST['porez'];    //$total3 = $_POST['total3'];    $total = $cena_polise * $stepen;    $total2 = $total * $porez;    $_SESSION['total3'] = $_POST['total3'];    $_SESSION['total3'] = $total + $total2;    /*echo "The total value is: ".$total;    echo "The total value is: ".$total2;*/    echo '<br/>';           echo "Ukupna cena polise: ".$_SESSION['total3'];    //$total3 = $_SESSION['total3'];    echo '<br/><br/><br/>';    }

tu mi je i HIDDEN
<input type="hidden" name="total3" value="<?php echo $_SESSION['total3']; ?>" />

Na strani posle submit imam na 2 načina
if(isset($_POST['total3'])){         $_SESSION['total3'] = $_POST['total3'];       echo 'TOTAL3:'.$_SESSION['total3'].'<br/><br/>';     }    echo 'TOTAL3:'.$_SESSION['total3'].'<br/><br/>';    //echo $_SEESION['stepen'];        //echo $_SESSION['items'];    //unset($_SESSION['total3']);        if(!empty($_SESSION['total3'])) {     echo 'TOTAL TEST:'. $_SESSION['total3']; } else {     echo "Session not set yet."; }

Kaže da sesija nije podešena a imam je na prvoj strani kao $_SESSION['total3'] = $total + $total2; GUZ - Glavom U Zid



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 15 Jan 2015
  • Poruke: 14

Postavi kompletan kod (html + php).



offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

@ShadowOTN ,

kad nađeš vremena i ako ti nije veliko cimanje pogledaj. Ovde vučem podatke za dropdown iz baze al nije to bitno, cela poenta je da TOTAL bude izračunat pre submita . Pomoćno rešenje sam već napravio sa drugim SUBMIT dugmetom , mada bi trebalo da bude samo jedan SUBMIT.

Sad na jedan submit dobijem vrednost TOTALA (Ukupna cena polise ) a na drugi SUBMIT šaljem na drugu stranu, tako da u ovom slučaju imam sve.

Šta se računa zaparavo? primer

$a * $b i $c * $d TOTAL je zbir ($a * $b) + ($c * $d)

Evo koda i slika Smile



<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>1</title> </head> <body> <form  method="POST" action=""> GODISTE:<select name="godiste_cena" > <option>GODISTE:</option> <?php $con = mysqli_connect("localhost","root","","input"); // Check connection if (mysqli_connect_errno())   {   echo "Failed to connect to MySQL: " . mysqli_connect_error();   } $_SESSION['godiste_cena'] =$_POST['godiste_cena'];     $result = mysqli_query($con, "SELECT * FROM godiste");     while($row = mysqli_fetch_assoc($result)){ //prefer using assoc that array    //echo "<select onchange='document.getElementById('stepen').submit();' size='' name='ceg'>";        echo "<option  value='" . $row['godiste_cena'] .  "'>" . $row['godiste'] . "</option>";    //echo "</select>";    echo '<br/><br/><br/>';         }             ?> </select> <br/><br/><br/> PREMIJSKI STEPEN:<select name="stepen"> <option>PREMIJSKI STEPEN:</option> <?php $_SESSION['stepen'] =$_POST['stepen'];     $result = mysqli_query($con, "SELECT * FROM stepen");     while($row = mysqli_fetch_assoc($result)){ //prefer using assoc that array    //echo "<select onchange='document.getElementById('stepen').submit();' size='' name='ceg'>";        echo "PREMIJSKI STEPEN:"."<option  value='" . $row['stepen'] .  "'>" . $row['id'] . "</option>";    //echo "</select>";    echo '<br/><br/><br/>';         }             ?> </select> <br/><br/><br/> CENA POLISE<select name="cena_polise" > <option>CENA POLISE</option> <?php    $_SESSION['cena_polise'] =$_POST['cena_polise'];     $result2 = mysqli_query($con, "SELECT * FROM snaga");     while($row = mysqli_fetch_assoc($result2)){ //prefer using assoc that array    //echo "<select onchange='document.getElementById('stepen').submit();' size='' name='ceg'>";        echo  "<option  value='" . $row['cena_polise'] .  "'>" . $row['snaga_motora'] . "</option>";    //echo "</select>";    echo '<br/><br/><br/>';         } ?> </select> <br/><br/> <input type="submit" name="go" value="IZRAČUNAJ"/> </form> <br/><br/> <?php $cena_polise = ''; $stepen =''; $porez = 0.05; $total = ''; $total3 = ''; /*$cena_polise = $_POST['cena_polise'];    $stepen = $_POST['stepen'];*/ //$_SESSION['total3'] = $_POST['total3']; //$_SESSION['total3'] =$_POST['total3'];       if(isset($_POST['go'])){       $cena_polise = $_POST['cena_polise'];    $stepen = $_POST['stepen'];    $porez = 0.05;    //$porez = $_POST['porez'];    //$total3 = $_POST['total3'];    $total = $cena_polise * $stepen;    $total2 = $total * $porez;    //$_SESSION['total3'] = $_POST['total3'];    $_SESSION['total3'] = $total + $total2;    /*echo "The total value is: ".$total;    echo "The total value is: ".$total2;*/    echo '<br/>';           echo "Ukupna cena polise: ".$_SESSION['total3'];        //$total3 = $_SESSION['total3'];    echo '<br/><br/><br/>';    } echo $_SESSION['stepen']; echo '<br/>'; echo $_SESSION['cena_polise']; echo '<br/>'; echo $_SESSION['godiste_cena']; echo '<br/>'; //unset($_SESSION['total3']); ?> <input type="hidden" name="total3" value="<?php echo $_SESSION['total3']; ?>" /> <br/><br/> </form> <br/><br/> <form method="GET" action="data.php">       <input type="submit" name="Submit" value="ŠTAMPAJ!">   </p> </form> </body> </html>

Da li bi mogao u jedan SELECT OPTION da se ubaci nešto tipa ONCHANGE , koji bi bio triger za računanje , umesto submita?

offline
  • Pridružio: 15 Jan 2015
  • Poruke: 14

gfactory ::a već koristim hidden za tu prokletu TOTAL al nju dobijem praznu nakon submita
Taj hidden elemenat "visi u vazduhu", ne pripada ni jednoj od te dve forme, imaš višak </form>.
Npr. nešto na brzinu, pomoću JavaScript-a:
<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Document</title>     <script type="text/javascript">         window.addEventListener('load', function() {             //(function() {                 function getPrice() {                     var porez = 0.05;                     //var form = document.getElementById('polisa');                     var godiste_cena = parseFloat(form['godiste_cena'].value);                     var stepen = parseFloat(form['stepen'].value);                     var cena_polise = parseFloat(form['cena_polise'].value);                     var total = cena_polise * stepen;                     var total2 = total * porez;                     var price = total + total2;                     return price;                 }                 function showPrice(price) {                     document.getElementById('price').innerHTML = 'Ukupna cena polise:' + price;                     document.getElementById('total').value = price;                     document.getElementById('submit').style.display = '';                 }                 var form = document.getElementById('polisa');                 var selectLists = form.getElementsByTagName('select');                 for (var i = 0, len = selectLists.length; i < len; i++) {                     selectLists[i].addEventListener('change', function() {                         for (var i = 0; i < len; i++) {                             if(selectLists[i].value == '') {                                 return;                             }                         }                         var price = getPrice();                         showPrice(price);                         //form.submit();                     });                 };             //})();         }); </script> </head> <body>     <form id="polisa" method="POST" action="data.php">         GODISTE:         <select name="godiste_cena" >             <option value="">GODISTE:</option>             <option value="1245">1995</option>             <option value="1285">1996</option>             <option value="1295">1997</option>         </select>         <br />         PREMIJSKI STEPEN:         <select name="stepen">             <option value="">PREMIJSKI STEPEN:</option>             <option value="0.8">1</option>             <option value="0.85">2</option>             <option value="0.9">3</option>         </select>         <br />         CENA POLISE         <select name="cena_polise" >             <option value="">CENA POLISE</option>             <option value="1000">1000</option>             <option value="2000">2000</option>             <option value="3000">3000</option>         </select>         <div id="price"></div>         <input id="total" name="total" type="hidden" />         <input id="submit" style="display:none;" type="submit" value="Naruči" />     </form> </body> </html>
Može ovo i bolje, dakle tek kada se izaberu sve vrednosti iz select lista, biće prikazana ukupna cena i submit dugme, i ukupna vrednost će biti upisana u input hidden elemenat sa imenom total, naravno na server strani vrši proveru jer je ova lako imenljivo. Ukoliko želiš da se po izboru svih vrednosti odmah izvrši submit forme skini komentar sa linije form.submit();. Malo je izmenjen html kod.

Pozdrav.

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

@ShadowOTN,

probao sam ovo tvoje , dobro si napravio, samo ću malo da ga modifikujem sa mysqli i to je to.

Puno hvala na izdvojenom vremenu, tu smo Smile Ziveli Pozdrav.

Ko je trenutno na forumu
 

Ukupno su 800 korisnika na forumu :: 36 registrovanih, 11 sakrivenih i 753 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Andrija357, Bane san, Ben Roj, BORUTUS, darkangel, dushan, FileFinder, FOX, Gargantua, Georgius, goxin, HrcAk47, Jahorina, kovinacc, Krvava Devetka, Kubovac, ljuba, ljubacv, Lutvo_Redzepagic, maiden6657, Metanoja, MikeHammer, milimoj, mnn2, moldway, nenad81, nextyamb, procesor, repac, sasa87, Sirius, stegonosa, Trpe Grozni, vathra