Спустя 12 минут, 24 секунды (28.12.2009 - 16:34) sergeiss написал(а):
После получения данных сравни intval( $val ) и $val, и знак полученного числа. В первом случае получим явное преобразование, во втором - неявное. Если они совпали - то всё введено правильно. Иначе - неправильно.
Можно еще использовать регулярные выражения... Но в данном случае, мне кажется, это непоправдано.
Можно еще использовать регулярные выражения... Но в данном случае, мне кажется, это непоправдано.
Спустя 2 минуты, 12 секунд (28.12.2009 - 16:36) vagrand написал(а):
Валидируй при помощи JS
Спустя 4 минуты, 38 секунд (28.12.2009 - 16:41) Эдик написал(а):
А если кто решит прикальнуться, и введет текст.Это тоже нежелательно?Как тут тогда быть?
А JS я пока вообще не знаю, может, если не сложно, приведите код.....
А JS я пока вообще не знаю, может, если не сложно, приведите код.....
Спустя 3 минуты (28.12.2009 - 16:44) sergeiss написал(а):
Цитата (Эдик @ 28.12.2009 - 17:41) |
А если кто решит прикальнуться, и введет текст. |
Тогда intval($val) вернет ноль
Ты разместил вопрос в разделе ПХП, поэтому я и даю тебе ответ про ПХП, а не про JS.
Спустя 2 минуты, 42 секунды (28.12.2009 - 16:47) vagrand написал(а):
Спустя 54 минуты, 13 секунд (28.12.2009 - 17:41) Эдик написал(а):
Вот такая ерунда-если ввожу в поле число-все норм, дальше товар отображается нормально, если ввожу буквы-то товар вообще не показывается(как и надо), но если потом опять в форму нормально начать вводить цифры, товар отображается непонятными значками.И так все время,пока не переоткрыть страницу со скриптом.Что это?
Спустя 12 минут, 57 секунд (28.12.2009 - 17:54) vagrand написал(а):
Щас включу свой ментоскоп и просканирую твой код.
JS код в студию
JS код в студию
Спустя 13 минут (28.12.2009 - 18:07) Эдик написал(а):
Тока не JS
<html>
<body>
<?
if (isset($_POST['item'])) {echo "<table>";
foreach($_POST['item'] as $key => $val) {if(($val!=NULL) && ($val>0) && (intval($val)==$val)){$el=explode(";",$key);echo "<tr>";
for($e=0;$e<count($el);$e++){echo "<td>$el[$e]</td>";} echo "<td>$val</td>";}
}
echo "</table>";}
else{
$z=0;
$x=0;
$c=0;
$csv="test.csv";
$open=fopen($csv,"r");
$file=file($csv);
echo "<table border=1><form method=post action=index.php>";
foreach($file as $string)
{
echo "<tr>";
$elements=explode(";",$string);
for($p=0;$p<count($elements);$p++)
{
echo "<td bgcolor=lightblue>$elements[$p]</td>";
}
if($x>=1)
{ $z++;echo "<td bgcolor=lightblue><input type=text size=3 name='item[$string]'></td>";$c++;}
echo "</tr>";
$x++;
}
echo "</table>";
fclose($open);
echo "<input type=submit value='Сформировать заказ'></form>";}
?>
</body>
</html>
Спустя 31 минута, 37 секунд (28.12.2009 - 18:38) vagrand написал(а):
Эдик
Скажи а зачем мне твой php код если ты сам написал:
Скажи а зачем мне твой php код если ты сам написал:
Цитата |
И так все время,пока не переоткрыть страницу со скриптом. |
Спустя 3 часа, 43 минуты, 31 секунда (28.12.2009 - 22:22) Эдик написал(а):
Ну у меня есть прайс, гдее напротив каждого товара свое текстовое поле для ввода количества.Кода я туда ввожу цифры и нажимаю "чормировать заказ" то попадаю на страницу, где выведены товары, кол-во которых я вводил.И вот, если я ввожу цифры, то товар отображается русскими буквами.Как только я ввожу в поле буквы(чтобы проверить, что скрипт проигнорирует буквы)-все норм,игнорирует, но после этого когда я ввожу цифры(кол-во товара), то выбранные товары отображаются некорректно(непонятные значки).Если обновляю страницу-ничего.Только когда ввожу заново адрес страницы-тогда все норм до следующих букв в форме.Почему так происходит и как с этим бороться??
Спустя 9 минут, 36 секунд (28.12.2009 - 22:31) vagrand написал(а):
Ниче не понял. Где ты шо вводишь? На первой или на второй странице?
Дай линк на скрипт или хоть принскринов понаделай
Дай линк на скрипт или хоть принскринов понаделай
Спустя 18 минут, 40 секунд (28.12.2009 - 22:50) Эдик написал(а):
<html>
<body>
<?
if (isset($_POST['item'])) {echo "<table>";
foreach($_POST['item'] as $key => $val) {if(($val!=NULL) && ($val>0) && (intval($val)==$val)){$el=explode(";",$key);echo "<tr>";
for($e=0;$e<count($el);$e++){echo "<td>$el[$e]</td>";} echo "<td>$val</td>";}
}
echo "</table>";}
else{
$z=0;
$x=0;
$c=0;
$csv="test.csv";
$open=fopen($csv,"r");
$file=file($csv);
echo "<table border=1><form method=post action=index.php>";
foreach($file as $string)
{
echo "<tr>";
$elements=explode(";",$string);
for($p=0;$p<count($elements);$p++)
{
echo "<td bgcolor=lightblue>$elements[$p]</td>";
}
if($x>=1)
{ $z++;echo "<td bgcolor=lightblue><input type=text size=3 name='item[$string]'></td>";$c++;}
echo "</tr>";
$x++;
}
echo "</table>";
fclose($open);
echo "<input type=submit value='Сформировать заказ'></form>";}
?>
</body>
</html>
Короче,есть прайс,где напротив каждого товара есть свое тестовое поле для ввода кол-ва заказываемого товара.Чтобы было хорошо, я установил условие-ни выводить товар, если в поле введен текст.Когда польщователь вводит кол-во товара в соответствующей форме, то он жмет "сформ. заказ" и перед ним возникает список товаров, кол-во которого он указал.Я проверяю скрипт:ввожу в поле текст и жму кнопку-мне товар вообще не отображатся(как и надо).Но потом я опять перехожу к товару и ввожу уже в поля цифры, жму кнопку и мне отображается товар, но уже в непонятных значках вместо русского.Почему так происходит?Страница одна и та ж, тока стоит условие:если данных из форм нет, то отображается прайс, еслиесть, то отображается выбранный товар.Вроде все
Спустя 3 минуты, 47 секунд (28.12.2009 - 22:54) Эдик написал(а):
Пардон, скриппт ваще одурел.Прописываю в браузере путь к нему, ввожу в фому цифры-первый раз отображает товар норм, потом обновляю страницу с прайсом, опять ввожу-отображает непонятные символы
Спустя 12 часов, 29 минут, 19 секунд (29.12.2009 - 11:23) Эдик написал(а):
Все,разобрался