Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2011, 20:53   #1
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию Ошибка при передачи параметров функции

Рубят помогите с кодом калькулятора , я знаю что ошибка в передачи переменных функции но не могу ее исправить все перепробовал. мне совет дали , сделать 2 файла один с формой другой с обработчиком так якобы легче , и сказали что одним файлом все делают только те кто уже долгое время занимается программирование то есть профи а я начинающий . но меня это не устраивает.
PHP код:
<?php
// Функция вывода формы ввода.
function show_form()
{
    echo 
'<html>';
    echo 
'<head>';
    echo 
'<title>Сумматор</title>';
    echo 
'</head>';
    echo 
'<body>';
    echo 
'<form action="sum.php" method="POST">';
    echo 
'<input type="text" name="a"/>';
    echo 
'<select neme="del">';
    echo 
'<option>+';
    echo 
'<option>-';
    echo 
'<option>*';
    echo 
'<option>/';
    echo 
'</select>';
    echo 
'<input type="text" name="b"/>';
    echo 
'<input type="submit" value="=" />';
    echo 
'</form>';
 if (
$_POST['a'] > && $b $_POST['b'] >0)
   {
     echo 
show_result($a $_POST['a'], $b $_POST['b'], $del $_POST['del']); 
     echo 
'</body>';    
     echo 
'</html>';
    }
else
    {
    echo 
'</body>';    
    echo 
'</html>';
    }    
}
    
// Функция вывода результата.
function show_result($a$b$del)

    if(
$del == '+')
        { 
        
$result $a $b
        echo 
$result;
        }
    elseif(
$del == '-')
        {
        
$result $a $b;
        echo 
$result;
        }
    elseif(
$del =='*')
        {
        
$result $a $b;
        echo 
$result;
        }
    elseif(
$del == '/')
        {
        
$result $a $b;
        echo 
$result;
        }
}

// Точка входа.

// Показываем результат операции или форму ввода.
if (isset($_POST['a'], $_POST['b'], $_POST['del']))
{
    
show_result($a $_POST['a'], $b $_POST['b'], $del $_POST['del']);
}
else
{
    
show_form();
}
?>
Русtam вне форума Ответить с цитированием
Старый 13.07.2011, 07:48   #2
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

echo '<select neme="del">';
я думаю стоит заменить на
echo '<select name="del">';
потому у вас и не приходил $_POST['del'], его просто не было)
))
а вообще
PHP код:
<html> 
<head> 
    <title>Сумматор</title> 
</head>
<body> 
<form  method="POST" > 
    <input type="text" name="a"/> 
    <select name="del" id="d"> 
        <option value="+">+</option> 
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option> 
    </select> 
    <input type="text" name="b"/>
    <input type="submit" value="=" /> 
</form> 
<p>
<?
function show_result($a$b$del
{  
    switch(
$del)
    {
       case 
'+':
          
$result $a +$b;
       break;
       case 
'-':
           
$result $a -$b;
       break;
       case 
'*':
           
$result $a *$b;
       break;
       case 
'/':
           
$result $a /$b;
       break;
     }
    return 
$result;
}
//echo $_POST['del'];
if ($_POST['a'] &&  $_POST['b'] && $_POST['del'])

   
$res show_result($_POST['a'], $_POST['b'], $_POST['del']); 
   echo 
$res;
}
else { echo 
"Empty fields";}  
?>
</p>
</body>
</html>
думай как баг, действуй как баг, и ты найдешь баг )

Последний раз редактировалось mrgrudge; 13.07.2011 в 07:54.
mrgrudge вне форума Ответить с цитированием
Старый 13.07.2011, 07:52   #3
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

Цитата:
Сообщение от Русtam Посмотреть сообщение
мне совет дали , сделать 2 файла один с формой другой с обработчиком так якобы легче , и сказали что одним файлом все делают только те кто уже долгое время занимается программирование то есть профи а я начинающий . но меня это не устраивает.
Сколько людей столько и мнений конечно, но на мой взгляд при программировании нужно четко разделять php и html и javascript части.
Почитайте подробнее про MVC (ООП), когда немного повысите свой скил)

И кстати, не то что бы это принципиально, но все же старайтесь избавляться функции echo в функциях, Это и работает криво и вообще не красиво)))
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 13.07.2011, 16:19   #4
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию

спасибо за ответ! На счет echo я знаю просто у меня в домашнем задании сказано сделать именно так .
Русtam вне форума Ответить с цитированием
Старый 26.11.2011, 11:33   #5
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
По умолчанию

Цитата:
Сообщение от mrgrudge Посмотреть сообщение

И кстати, не то что бы это принципиально, но все же старайтесь избавляться функции echo в функциях, Это и работает криво и вообще не красиво)))
А почему? .
alt5000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить значение функции при заданных значениях параметров Lordi1289 C++ Builder 1 15.06.2011 22:19
ошибка при передачи данных массива в процедуру chircov090993 Помощь студентам 0 06.11.2010 20:06
Ошибка конвертации при передачи фото по сети Lokos Работа с сетью в Delphi 2 07.10.2010 02:08
ошибка в tFIBDataSet при использовании параметров. Lokos БД в Delphi 30 25.05.2010 10:32
почему вылетает ошибка при передачи файлов через цокет leonw Работа с сетью в Delphi 6 19.01.2010 22:16