Перейти к содержимому


Пользователь месяца
WGN WGN 1-й за Июль
Очков активности: 850 2 темы, 75 сообщений, 7 баллов репутации
Сайт: worldgamenews.com
ТОП самых активных за этот месяц
  • Фотография TimurR
    #1

    TimurR
    Очков активности: 273 3 темы, 17 сообщений, 7 баллов репутации

  • Фотография WGN
    #2

    WGN (worldgamenews.com)
    Очков активности: 64.5 Вне конкурса за определение пользователя месяца

  • Фотография ShowPrint
    #3

    ShowPrint (ShowPrint.ru)
    Очков активности: 52.5 0 тем, 7 сообщений, 5 баллов репутации

  • Фотография BlackLion
    #4

    BlackLion
    Очков активности: 36 0 тем, 24 сообщения, 1 балл репутации

  • Фотография Vmir
    #5

    Vmir
    Очков активности: 25.5 Вне конкурса за определение пользователя месяца

  • Фотография Napoleon-007
    #6

    Napoleon-007
    Очков активности: 21 0 тем, 14 сообщений, 1 балл репутации

  • Фотография Ixman
    #7

    Ixman (o5cat.ru)
    Очков активности: 21 0 тем, 7 сообщений, 2 балла репутации

  • Фотография alekswebart
    #8

    alekswebart
    Очков активности: 19.5 1 тема, 10 сообщений, 1 балл репутации

  • Фотография r0mZet
    #9

    r0mZet (rz-style.ru)
    Очков активности: 18 2 темы, 6 сообщений, 1 балл репутации

  • Фотография profi
    #10

    profi (1informer.com)
    Очков активности: 12 0 тем, 8 сообщений, 1 балл репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 17.08.2018
Топ 5 участников по репутации


Не передаются данные через форму

#1 Kuchuluk

Kuchuluk
  • Пользователь
  • 329 сообщений
  • Репутация: 5
0

Отправлено 25 June 2012 - 20:09

Здравствуйте. Сделал такую форму, мини калькулятор.
<form action="calculator.php" method="post">
<p><input name="chislo1" type="text" id="chislo1" value="Введите первое число" size="20" maxlength="10"></p>
<p><input name="chislo2" type="text" id="chislo2" value="Введите второе число" size="20" maxlength="10"></p>
<p><label>Выберите математическое действие</label></p>
<p><input name="deistvie" type="radio" value="sum">Сложение</p>
<p><input name="deistvie" type="radio" value="vich">Вычитание</p>
<p><input name="schet" type="submit" value="Посчитать"></p>
</form>
<?php
if (isset($_POST['chislo1'])) {
	$chislo1 = $_POST['chislo1'];
	}
if (isset($_POST['chislo2'])) {
   $chislo2 = $_POST['chislo2'];
    }
if (!empty($_POST['shet'])) {
	 if ($_POST['deistvie'] = sum) {
	  $sum = $chislo1 + $chislo2;
      }
  if ($_POST['deistvie'] = vich) {
	  $sum = $chislo1 - $chislo2;
   }
  echo $sum;
}
но прин нажатии на кнопку, выводится опять таже страница с формой, а результат вычислений не выводится

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Передача данных между страницами.
  2. Передача данных методом $_POST нажатием на ссылку ,без формы отправки
  3. Как сделать форму и её обработчик в одном файле?
  4. При передаче переменной методом post через форму она пустая
  5. Не передаются данные из формы

#2 surfer

surfer
  • Заблокированные
  • 1956 сообщений
  • Репутация: 71

Отправлено 25 June 2012 - 20:14

у меня твой скрипт переходит на страницу calculator.php посмотри пути, надеюсь:

<?php
if (isset($_POST['chislo1'])) {
	    $chislo1 = $_POST['chislo1'];
	    }
if (isset($_POST['chislo2'])) {
   $chislo2 = $_POST['chislo2'];
    }
if (!empty($_POST['shet'])) {
		 if ($_POST['deistvie'] = sum) {
		  $sum = $chislo1 + $chislo2;
	  }
  if ($_POST['deistvie'] = vich) {
		  $sum = $chislo1 - $chislo2;
   }
  echo $sum;
}
?>

находится в calculator.php

а не считает потому что у тебя опечатки и ошибки в коде

у тебя опечатка в форме:

<input name="schet" type="submit" value="Посчитать">

а в вычислении


if (!empty($_POST['shet'])) {

а здесь

if ($_POST['deistvie'] = sum) {

и здесь
if ($_POST['deistvie'] = vich) {

необходимо использовать не оператор присваивания
=
а оператор сравнения
==

  • 0

#3 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 25 June 2012 - 20:55

Ну и в дополнение к предыдущему - Вы присваиваете в этих строках значение... плюс строка должна быть заключена в кавычки:
if ($_POST['deistvie'] = sum)
if ($_POST['deistvie'] = vich)
Ну а нужно, я так понимаю, сравнить значение со строкой:
if ($_POST['deistvie'] == 'sum')
if ($_POST['deistvie'] == 'vich')

Где-то так логичнее было бы:
<?php
if(isset($_POST['schet'])){
$chislo1 = $_POST['chislo1'];
$chislo2 = $_POST['chislo2'];
switch($_POST['deistvie']){
  case 'sum':
   $sum = $chislo1 + $chislo2;
   break;
  case 'vich':
   $sum = $chislo1 - $chislo2;
   break;
}
echo $sum;
}
?>
Ну и плюс, конечно же, не мешает добавить проверок... а то ведь можно вводить и строки, и не выбирать операцию...
  • 0


#4 surfer

surfer
  • Заблокированные
  • 1956 сообщений
  • Репутация: 71

Отправлено 25 June 2012 - 21:02

ценные дополнения!
  • 1

#5 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 329 сообщений
  • Репутация: 5

Отправлено 25 June 2012 - 21:19

matroskin8, surfer,
спасибо вам большое, действительно там была опечатка в названии кнопки. Я также оставил, только переделал как вы говорили, сделал sum и vich строковыми значениями.
<?php
if (isset($_POST['chislo1'])) {
    $chislo1 = $_POST['chislo1'];
}
if (isset($_POST['chislo2'])) {
    $chislo2 = $_POST['chislo2'];
}
if (!empty($_POST['schet'])) {
	 if ($_POST['deistvie'] == 'sum') {
	  $rez = $chislo1 + $chislo2;
   }
  if ($_POST['deistvie'] == 'vich') {
	  $rez = $chislo1 - $chislo2;
   }
  echo $rez;
}

  • 0



Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru