Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] dodawanie liczb
Forum PHP.pl > Forum > Przedszkole
Elenka
Bardzo prosiłabym o pomoc w poprawieniu skryptu dodającego wartości wpisane w liście:

  1. <FORM action="index.php?id=wylicz" method="POST">
  2.  
  3. <table border="0" cellpadding="0" cellspacing="0">
  4. <tr><td>
  5. Pozycja 1
  6. <td>
  7. <input type="text" class="field" id="s" value="0" name="w1" />
  8. </td></tr>
  9. <tr><td>
  10. Pozycja 2
  11. <td>
  12. <input type="text" class="field" id="s" value="0" name="w2" />
  13. </td></tr>
  14. <tr><td>
  15. Pozycja 3
  16. <td>
  17. <input type="text" class="field" id="s" value="0" name="w3" />
  18. </td></tr>
  19.  
  20. </table>
  21.  
  22. <INPUT type="submit" value="Wylicz" class="btn red"> </FORM>
  23.  


  1. <?php
  2.  
  3. if (is_numeric($_POST['w1']) && is_numeric($_POST['w2']) && is_numeric($_POST['w3'])) {
  4. echo ($_POST['w1'] + ($_POST['w2'] + ($_POST['w3'] ;
  5. } else {
  6. echo "0";
  7. }
  8.  
  9. ?>


Wzięłam to z jakiegoś podstawowego kursu, ale są małe problemy...

1. Musiałam ustawić w formularzu wartości domyślne - 0 - bo inaczej skrypt zawsze zwracał 0. Jest to o tyle niefajne, że z każdym razem trzeba usuwać zero z pola imput żeby wpisać własną wartość.

Da się to tak przerobić, że skrypt nie będzie zwracał uwagi czy w polach coś jest wpisane i wyliczał sumę jedynie z wpisanych pól?

2. Marzy mi się żeby to się liczyło w czasie rzeczywistym bez konieczności klikania "wylicz" i przeładowywania strony.

Proszę o pomoc rolleyes.gif
markonix
1. Po prostu
  1. $_POST['w1'] + $_POST['w2'] + $_POST['w3']

PHP samo rzutuje na inty - czyli każdy inny znak np. litera czy pusty string w dodawaniu będzie zerem.

2. JS.
Elenka
No właśnie nie. Gdy nie było value="0" skrypt zawsze wyliczał zero gdy w dwóch polach były cyfry a trzecia pozostawała pusta.

A mógłbyś rozwinąć co konkretnie z js trzeba tam wrzucić żeby się samo liczyło?
markonix
Cały ten kod zastąp:
  1. $sum = $_POST['w1'] + $_POST['w2'] + $_POST['w3'];
  2. echo $sum;

i sama zobacz.
czychacz
Cytat(markonix @ 31.07.2012, 14:43:33 ) *
Cały ten kod zastąp:
  1. $sum = $_POST['w1'] + $_POST['w2'] + $_POST['w3'];
  2. echo $sum;

i sama zobacz.

a jak wpisze w w1 "e" to będzie miała łączenie stringów -.-
jak chcesz na siłę wrzucać wartości z ustawianiem na 0 zmiennych nie przechowujących intów, to użyj rzutowania
  1. (int)$_POST['w1'] + (int)$_POST['w2'] + (int)$_POST['w3']
markonix
Cytat(czychacz @ 31.07.2012, 15:06:47 ) *
a jak wpisze w w1 "e" to będzie miała łączenie stringów -.-

W jakiej wersji PHP?

Sprawdź a potem komentuj.
Elenka
Teraz działa,dzięki wielkie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.