Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработка checkbox в PHP
 
 автор: Gandzas   (17.08.2006 в 20:32)   письмо автору
 
 

Помогите реализовать задачу:

Есть поле для ввода значения:

<input type="text" name="pole" value="">


и 7 чекбоксов:

<INPUT TYPE=CHECKBOX NAME="1" VALUE=yes>
<INPUT TYPE=CHECKBOX NAME="2" VALUE=yes>
<INPUT TYPE=CHECKBOX NAME="3" VALUE=yes>
<INPUT TYPE=CHECKBOX NAME="4" VALUE=yes>
<INPUT TYPE=CHECKBOX NAME="5" VALUE=yes>
<INPUT TYPE=CHECKBOX NAME="6" VALUE=yes>
<INPUT TYPE=CHECKBOX NAME="7" VALUE=yes>


В одном столбце таблицы, а
задача: во втором столбце таблицы вывести посчитанную сумму.

Условие задачи:
Если не введено ни одно значение - показывать 0
если pole >0 и <=5, то введенное значение нужно умножить на 20,
если pole >5 и <=10, то введенное значение нужно умножить на 15,
если pole >10, то введенное значение нужно умножить на 10
Я себе это представляю примерно так:


if (is_numeric ($_POST['pole']) && $_POST['pole'] > 0) {
   if ($_POST['pole'] > 0 && $_POST['pole'] <= 5) {
      $summa += $_POST['pole'] * 20;
   } elseif ($_POST['pole'] > 5 && $_POST['pole'] <=10) {
      $summa += $_POST['pole'] * 15;
   } elseif ($_POST['pole'] > 10) {
      $summa += $_POST['pole'] *10;
   }


Вторая часть задачи состоит в том, что к полученному от этих действий произведению нужно прибавить значения, соответствующие каждому чекбоксу, если юзер поставил галочку.

Как реализовать? Как вывести на печать на этой же странице. Т.е. поставил галочку - поменялась сумма и т.д.

Спасибо.

   
 
 автор: freddie_X   (17.08.2006 в 22:22)   письмо автору
 
   для: Gandzas   (17.08.2006 в 20:32)
 

Попробуй яваскриптом реализовать.

   
 
 автор: cheops   (17.08.2006 в 22:37)   письмо автору
 
   для: Gandzas   (17.08.2006 в 20:32)
 

Можно поступить следующим образом
<form method=post>
<input type="text" name="pole" value="<?php echo htmlspecialchars($_POST['pole']); ?>"><br>
<INPUT TYPE=CHECKBOX NAME="chk1" VALUE=yes <?php if($_POST['chk1'] == 'yes') echo 'checked'?>><br> 
<INPUT TYPE=CHECKBOX NAME="chk2" VALUE=yes <?php if($_POST['chk2'] == 'yes') echo 'checked'?>><br>
<INPUT TYPE=CHECKBOX NAME="chk3" VALUE=yes <?php if($_POST['chk3'] == 'yes') echo 'checked'?>><br> 
<INPUT TYPE=CHECKBOX NAME="chk4" VALUE=yes <?php if($_POST['chk4'] == 'yes') echo 'checked'?>><br>
<INPUT TYPE=CHECKBOX NAME="chk5" VALUE=yes <?php if($_POST['chk5'] == 'yes') echo 'checked'?>><br>
<INPUT TYPE=CHECKBOX NAME="chk6" VALUE=yes <?php if($_POST['chk6'] == 'yes') echo 'checked'?>><br>
<INPUT TYPE=CHECKBOX NAME="chk7" VALUE=yes <?php if($_POST['chk7'] == 'yes') echo 'checked'?>><br>
<input type=submit value="Подсчитать">
</form>
<?php
  
if(!empty($_POST))
  {
    
$summa 0;
    if (!
is_numeric ($_POST['pole'])) exit("Введите число");
    if (
$_POST['pole'] > && $_POST['pole'] <= 5)      $summa += $_POST['pole'] * 20;
    else if (
$_POST['pole'] > && $_POST['pole'] <=10$summa += $_POST['pole'] * 15;
    else if (
$_POST['pole'] > 10)                       $summa += $_POST['pole'] * 10;

    if(
$_POST['chk1'] == 'yes'$summa += 1;
    if(
$_POST['chk2'] == 'yes'$summa += 2;
    if(
$_POST['chk3'] == 'yes'$summa += 3;
    if(
$_POST['chk4'] == 'yes'$summa += 4;
    if(
$_POST['chk5'] == 'yes'$summa += 5;
    if(
$_POST['chk6'] == 'yes'$summa += 6;
    if(
$_POST['chk7'] == 'yes'$summa += 7;

    echo 
$summa;
  }
?>

   
 
 автор: Gandzas   (18.08.2006 в 12:56)   письмо автору
 
   для: cheops   (17.08.2006 в 22:37)
 

Как всегда, респект! :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования