Kalkulator PHP i AJAX

0

Witam serdecznie ;)

Mam problem, mianowicie chciałem zrobić kalkulator do konwersji systemów liczbowych z wykorzystaniem php na moją stronę ale stanąłem w martwym punkcie.

Oto strona kalkulatora:kalkulator.php

user image

<div id="leftcolumn">
<a href="javascript:ajaxpage('test1.php', 'rightcolumn');">Binarny</a>
<a href="javascript:ajaxpage('test2.php', 'rightcolumn');">Szesnastkowy</a>
<a href="javascript:ajaxpage('ajaxfiles/external3.htm', 'rightcolumn');">Aston Martin Page</a>

<div style="margin-top: 2em">Load CSS & JS files</div>
<a href="javascript:loadobjs('ajaxfiles/style.css', 'ajaxfiles/tooltip.js');">Load "style.css" and "tooltip.js"</a>

</div>

<div id="rightcolumn"><h3>Choose a page to load.</h3></div>
<div style="clear: left; margin-bottom: 1em"></div>
<?php


 
         session_start(); 
if(!isset($_SESSION['wyniki']))
{
$_SESSION['wyniki'] = 0;
}
 

        echo 'Odwiedziłeś już '.$_SESSION['wyniki'].' podstron!'; 
 
 $wynik = 0;
echo "<h1>Wynik to:</h1>";
echo '<input type="text" name="nazwa" value="'.$_SESSION['wyniki'].'">'
       


?>

Tabelki są zrobione w Ajax, po kliknięciu z np. Binarny otwiera się w okienku strona test1.php (bez przeładowania)

Strona test1.php

user image

<form Method ="POST">
Liczba Binarna: <input type="text" name="liczba" value="0"><br />
<input type="submit" value="Konwertuj!" name="kon"><br />

</form>
<?php
 session_start(); 

$kon = 0;
if(isset($_POST['kon'])) {
$liczba = 0;
$wynik = 0;

$a = $_POST['liczba'];
$wynik = base_convert($a, 2, 10);
echo 'Wynik to:'.$wynik.' a';
  $_SESSION['wyniki'] = $wynik;
        echo 'Numer zmiennej to: '.$_SESSION['wyniki'].'  a '; 

} 
?>

Gdy wpisze w pole "Liczba Binarna" - liczbę binarną na stronie test1.php to wszystko działa prawidłowo, mianowicie pod zmienną $_SESSION['wyniki'] podstawia wynik konwersji z liczby binarnej na dziesiętną. Nawet po odświeżeniu strony kalkulator.php zmienna w sesji jest zapamiętywana i wyświetlana właściwa.

Problem pojawia się gdy chce to zrobić za pomocą strony **kalkulator.php ** gdzie w ramce jest wczytywana strona test1.php, po wpisaniu liczby i kliknięciu "Konwertuj" cała strona się przeładowuje i pod zmienną $_SESSION['wyniki'] nic się nie podstawia. Pozostaje taka sama liczba jaka poprzednio była zapamiętana, na przykład podczas testów na stronie test1.php.

Jak to zrobić by zmienna była przekazywana do $_SESSION['wyniki'] po kliknięciu konwertuj w stronie kalkulator.php.

Z góry dziękuje i pozdrawiam

0

Strasznie po chińsku jest to napisane. Po co zapisujesz do sesji? Ściągnij jQuery i metodą $.ajax, $.post lub $.get przesyłaj informację do pliku, który wszystko obliczy i zwróci dane w postaci JSON.

Jeżeli używasz ajaxa do tego by nie przeładowywać strony, po czym przy zatwierdzeniu formularza strona normalnie się przeładowuje, to jest to bardzo połowiczne zastosowanie tej technologii.

Osobiście też polecam zrobić kalkulator w jednym oknie - czyli zrób pole input, w którym wpisuje się liczbę oraz dwa pola radio (z jakiego systemu na jaki). Możesz dodatkowo dopisać dynamiczne liczenie wartości.

Czy robisz to w ramach nauki?

0

Dziękuje bardzo za odpowiedź.

Tak robię to w ramach nauki, mianowicie ucze się programowania bo mnie bardzo zainteresowało i nie mogę popuścić ja coś nie wychodzi ;)
Chciałem zrobić ucząc się stronę o systemach liczbowych.

W sumie masz racje z tym co mówisz, ale tak z ciekawości dlaczego zmienna nie jest przesyłana?

1 użytkowników online, w tym zalogowanych: 0, gości: 1