Wyswietlanie wyniku formularza na tej samej stronie

2011-04-14 21:28
0

Witam. Dopiero zaczynam przygode z php. Mam takie zadanie zrobic prosty kalkulator, ktory ma wyswietlic wynik na tej samej stronie, pod formularzem, po przeslaniu danych.
Zrobilem tak, ze wyswiela wynik na nowej stronie i moje pytanie jak to zrobic zeby bylo zgodnie z poleceniem zadania?

zad3.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> zad3 </title>
<meta name="Generator" content="Alleycode HTML Editor">
<meta name="Description" content="Your description here...">
<meta name="Keywords" content="Your keywords here...">
</head>

<body>

<form action="kalk.php" method="post">
<input type="text" name="l1"/>
<input type="text" name="l2"/>
<br>
<input type="submit" name="dzialanie" value="dodaj"/>
<input type="submit" name="dzialanie" value="odejmij"/>
<input type="submit" name="dzialanie" value="pomnoz"/>
<input type="submit" name="dzialanie" value="podziel"/>
</form>

</body>
</html>

kalk.php

<?php

switch($_POST['dzialanie'])
{
    case 'dodaj': 
    echo "Wynik dodawania: " ; echo $_POST['l1'] + $_POST['l2'];
    break;

    case 'odejmij':
    echo "Wynik odejmowania: " ; echo $_POST['l1'] - $_POST['l2'];
    break;

    case 'pomnoz':
    echo "Wynik mnozenia: " ; echo $_POST['l1'] * $_POST['l2'];
    break;

    case 'podziel':
    if ($_POST['l2'] == 0)
    {
        echo 'Nie mozna dzielic przez 0.';
        break;
    }
    echo "Wynik dzielenia: " ; echo $_POST['l1'] / $_POST['l2'];
}
?>
edytowany 1x, ostatnio: madmike, 2011-04-15 12:44

Pozostało 580 znaków

2011-04-15 09:43
0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> zad3 </title>
<meta name="Generator" content="Alleycode HTML Editor">
<meta name="Description" content="Your description here...">
<meta name="Keywords" content="Your keywords here...">
</head>

<body>

<form action="" method="post">
<input type="text" name="l1"/>
<input type="text" name="l2"/>
<br>
<input type="submit" name="dzialanie" value="dodaj"/>
<input type="submit" name="dzialanie" value="odejmij"/>
<input type="submit" name="dzialanie" value="pomnoz"/>
<input type="submit" name="dzialanie" value="podziel"/>
</form>

<?php
switch($_POST['dzialanie'])
{
        case 'dodaj': 
        echo "Wynik dodawania: " ; echo $_POST['l1'] + $_POST['l2'];
        break;

        case 'odejmij':
        echo "Wynik odejmowania: " ; echo $_POST['l1'] - $_POST['l2'];
        break;

        case 'pomnoz':
        echo "Wynik mnozenia: " ; echo $_POST['l1'] * $_POST['l2'];
        break;

        case 'podziel':
        if ($_POST['l2'] == 0)
        {
                echo 'Nie mozna dzielic przez 0.';
                break;
        }
        echo "Wynik dzielenia: " ; echo $_POST['l1'] / $_POST['l2'];
}
?>

</body>
</html>

zapisz to w dowolnym pliku php


Swoją drogą, jeżeli miałoby to być tak super-super, a nie na odwal-się (nic nie mam do twojego kodu ;)), to można by Ajax'a do tego zaprzęgnąć... - Patryk27 2011-06-28 12:38

Pozostało 580 znaków

2011-06-28 11:41
styljola
0

Proszę o pomoc czy te dwa pliki można razem połaczyć aby wynik wyświetlał się na jednej stronie?

dodaj.php

<?php
if ($_POST['button'] == "wyslij") {
/* sprawdzam czy dane zostały wysłane z formularza */
  $plik = "db.txt";
  if (is_writeable($plik)) {
  /* sprawdzam czy plik jest do zapisu */
    if (!$handle = fopen($plik, "w+")) echo "Nie mogę otworzyć pliku...";
    if (fwrite($handle, $_POST['rpb']." || ".$_POST['rwb']." 
")=== FALSE) echo "Nie mogę zapisać danych do pliku...";
      else 

    //echo "Dane zostały dodane...";

    echo '<a href="pokaz.php" >Teraz możesz sprawdzić klikaj&#261;c TUTAJ :) </a>.';

    fclose($handle);

  } else echo "Plik nie istnieje lub jest nie do zapisu...";
}

?>

<form action="dodaj.php" method="post">
Rozmiar pb: <input type="text" name="rpb" /><br />
Rozmiar wb: <input type="text" name="rwb" /><br />
<input type="submit" name="button" value="wyslij" />
</form>

pokaz.php

<?php
$plik = "db.txt";
$dane = file($plik); /* pobieram dane z pliku i zapisuje do tablicy (linia = rekord) */

for($i=0;$i<count($dane);$i++) { /* przeszukuję tablicę */

  list($rpb[$i], $rwb[$i],) = explode(" || ", $dane[$i]);
   /* dziele linię na tablicę i zapisuje dane do odpowiednich zmienncyh */
}

for($i=0;$i<count($rpb);$i++) /* przeszukuję tablicę */

if (( $rpb[$i] >= 63 and $rpb[$i] <= 67) &&  ( $rwb[$i] >= 77 and $rwb[$i] <= 79))

        echo "651";

elseif (( $rpb[$i] >= 63 and $rpb[$i] <= 67) &&  ($rwb[$i] >= 79 and $rwb[$i] <= 81))

        echo "652";

else
        echo "zero";

?>
Tak, można. - Patryk27 2011-06-28 12:38

Pozostało 580 znaków

2011-06-28 12:53
styljola
0

Tylko wtedy wszystko wykonuje się w tym samym czasie.
A najpierw powinno być wpisanie przez użytkownika danych a potem dopiero dopiero wyniku :(

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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