нужна помощь в PHP

seobeginner
На сайте с 08.12.2007
Offline
32
539

Подскажите, пожалуйста, как в PHP реализовать следующее:

Есть код

<form method=post>

<td width=12% align=center>

<input type=text name=dr[$i] value='$row[8]' size=3 ></td>

<input type=submit value='Сохранить' class=field2></form>

Как сделать, чтобы при вводе в input числа меньше минимального, всегда ставилось это минимальное число?

Блог начинающего сеошника (http://seobeginner.ru)
[Удален]
#1

Я бы на Вашем месте делал на стороне клиента Javascript-ом и дополнительно проверял на сервере php-ом - это если эти поля предназначены для ввода информации пользователем.

А если Вам просто нужно сравнить числа при формировании формы в php - используйте оператор IF.

Често говоря задача настолько тривиальна и проста что я даже ошарашен %)

seobeginner
На сайте с 08.12.2007
Offline
32
#2

да дело в том, что в php я практически 0 😒, в Delphi реализовать 5 сек...

Вот скоро буду изучать, сейчас времени нет.

просто нужно сделать небольшой скриптик для личных нужд.

информация именно вводиться пользователем.

например я мин. цифра установлена 10, в поле я ввожу 7, нажимаю "сохранить", страница сохраняется, но в поле стоит 10. Если больше 10, то цифра пользовательсякая

Прошу реализовать, я понимаю что нужно использовать if... Вопрос "как"?

Заранее спасибо.

[Удален]
#3
seobeginner:
да дело в том, что в php я практически 0 😒, в Delphi реализовать 5 сек...
Вот скоро буду изучать, сейчас времени нет.
просто нужно сделать небольшой скриптик для личных нужд.
информация именно вводиться пользователем.
например я мин. цифра установлена 10, в поле я ввожу 7, нажимаю "сохранить", страница сохраняется, но в поле стоит 10. Если больше 10, то цифра пользовательсякая

Прошу реализовать, я понимаю что нужно использовать if... Вопрос "как"?
Заранее спасибо.

У Вас уже submit формы обрабатывается php-ом? Если да - то вписываете нечто подобное

<?php

If (isset($_POST['имя input-f']) and ($_POST['имя input-f']<мин. число)) dr[$i] (вроде бы тут у Вас имя формы)=мин. число;
?>

Если полей много - то делаете цикл и вместо имени подставляете массив с именами.

SF
На сайте с 11.10.2005
Offline
137
#4

seobeginner, php - это серверный язык и исполняется он на сервере а не на странице.

K2el, правильно говорит, то что вы хотите можно сделать только javascript , javascript этот язык исполняется на странице(если он не отключен).

Вам надо выполнять это на javascript...

вот код, можно вводить числа от3 до 99

проверка срабатывает когда инпут теряет курсор

<script type="text/JavaScript">

<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>

<form id="form1" name="form1" method="post" action="">
<input name="textfield" type="text" onblur="MM_validateForm('textfield','','NinRange3:99');return document.MM_returnValue" />
</form>
Инструкция: Как Правильно Делать Сайты: Домен, Хостинг, Установка CMS (http://www.3sd.ru/kak-delat-site/index.php).
seobeginner
На сайте с 08.12.2007
Offline
32
#5

спасибо за советы, попробую...

SellingFeis, выполняться скрипт будет на сервере, так что php применять можно.

seobeginner
На сайте с 08.12.2007
Offline
32
#6

Реализовал вот так:

If ($_POST['dr[$i]']<10) { $row[8]=10;}

Все ок

а как реализовать, чтобы если 0, то значение 0, если >0, но<10, то $row[8]=10;}

Пробовал вот так:

If (($_POST['dr[$i]']>0) AND ($_POST['dr[$i]']<0.3)) { $row[8]=0.3;}

Но не прет, оставляет любое введенное значение.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий