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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 20:18   #1
adller_one
Новичок
Джуниор
 
Регистрация: 13.01.2011
Сообщений: 1
По умолчанию Запретить ввод более одной десятичной точки в форму ввода("некорректный ввод")

Доброго времени суток всем!
Необходимо запретить ввод более одной десятичной точки в форму ввода. Либо сделать какое либо ограничение с выводом сообщения об ошибке (некорректный ввод данных).
В программе есть 4 формы ввода чисел. Необходимо, что бы в каждую из форм можно было вводить с клавиатуры только числа (как положительные, так и отрицательные). Но было возможно ввести например: 9.9 или 99.999 и тд. главное условие состоит в том, что нельзя будет ввести: 9.9.9 либо вообще несколько точек.(ограничение с выводом ошибки ввода).
Я пробовал сделать это всё с помощью маски ввода, а так же проверки на валидность...Но у меня не получилось...
По этому и прошу срочную помощь...
Прилагаю саму программу...Подскажите как можно её исправить что бы соответствовала условию...

Добавлено Сегодня, 19:39
Сам текст программы который нужно изменить в соответствии с условиями:

<?php
$start = $_GET[start];
$finish = $_GET[finish];
$step = $_GET[step];
$parametr = $_GET[parametr];
$formula = $_GET[formula];

class Coor{

public $start,$finish,$step,$formula,$para metr;


function Set_mass($start,$finish,$step,$form ula,$parametr) {
// Задаём значения
for($x = $start; $x <= $finish; $x = $x + $step){
/*Подсчёт значений y и w по формуле */
if ($formula == 1) {$mass[1][$counter] = pow($x,2) - pow(tan(cos($x)),7);}
if ($formula == 2) {$mass[1][$counter] = sqrt(abs(sin($x)) * $parametr * exp($x * log10($x)));}
if ($formula == 3) {$mass[1][$counter] = $x;}
if ($formula == 4) {$mass[1][$counter] = $x * $parametr;}
$counter++;
}
$mass[3][1] = $counter;
$mass[3][2] = $start;
$mass[3][3] = $finish;
$mass[3][4] = $step;
$mass[3][5] = $parametr;
return $mass;
}
function Get_mass($mass){
echo "Начальное значение = <b>{$mass[3][2]}</b>; Конечное значение = <b>{$mass[3][3]}</b>; Шаг = <b>{$mass[3][4]}</b>;<br><b>A = {$mass[3][5]}</b>";
// Выводим значения
do {
echo "<pre>y = ".$mass[1][$k]."</pre>";
$k++;
}
while ($k<$mass[3][1]);
}
}
if (!$start && !$finish && !$step && !$parametr){



print
<<<HERE
<form action=index.php method=get>

Введите начальное значение


<input type="text" name="start" onchange="this.value=this.value.rep lace(/([^0-9.])/g,'');" onkeyup="var n=this.value.replace(/([^0-9.])/g,''); if(n!=this.value) this.value=n;">


<br><br>
Введите конечное зачение
<input type="text" name="finish" onchange="this.value=this.value.rep lace(/([^0-9.])/g,'');" onkeyup="var n=this.value.replace(/([^0-9.])/g,'.'); if(n!=this.value) this.value=n;">


<br><br>
Введите значение шага
<input type="text" name="step" onchange="this.value=this.value.rep lace(/([^0-9.])/g,'');" onkeyup="var n=this.value.replace(/([^0-9.])/g,''); if(n!=this.value) this.value=n;">

<br><br>
Введите A
<input type="text" name="parametr" onchange="this.value=this.value.rep lace(/([^0-9.])/g,'');" onkeyup="var n=this.value.replace(/([^0-9.])/g,''); if(n!=this.value) this.value=n;">


<select name='formula'>
<option value='1'>Формула 1</option>
<option value='2'>Формула 2</option>
<option value='3'>Формула 3</option>
<option value='4'>Формула 4</option>
</select>

<br><br>
<input type=submit value=OK name=send>
</form>
HERE;

}

else{
$object = new Coor();
$object->mass = $object->Set_mass($start,$finish,$step,$for mula,$parametr);
$object->Get_mass($object->mass);
}
?>


Подскажите кто может...что необходимо добавить...
adller_one вне форума Ответить с цитированием
Старый 13.01.2011, 23:59   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Как с помощью JS, так и на PHP можно подсчитать число точек в строке, и если оно больше 1, очищать ее. Надеюсь, сможете подсчитать его?
motorway вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ввод только чисел и знака "-" в InputBox'e в Delphi nuevegramodelamor Помощь студентам 1 19.06.2010 19:01
Как запретить ввод всего алфавита и логических знаков "=+-*/" prikolist Общие вопросы C/C++ 13 02.06.2010 20:47
Ограничение на ввод символов в "поле ввода" zvezda_t JavaScript, Ajax 0 07.02.2010 19:57
Как запретить ввод второго символа "-" в StringGrid ? Ветас Помощь студентам 2 11.11.2009 22:17
запрашивает ввод времени суток и в зависимости от этого выводит на экран "Доброе утро", "Добрый день". Maria, Russia Помощь студентам 5 17.02.2009 21:44