Вопросы по PHP |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 7255-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Вопросы по PHP |
| Glavar |
Пост
#121
|
|
Репутация: 10 ![]() Активист ![]() Группа: Пользователи Сообщений: 379 С нами с: 11-May 08 |
|
| YoGi |
Пост
#122
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
подскажите, вот к примеру есть форма
<select name=operation> <option value=1>Умножение</option> <option value=2>Деление</option> <option value=3>Сложение</option> <option value=4>Вычитание</option> </select> и есть такая функция function matchOperation ($a, $b, $operation) { switch ($operation) { case "Сложение" : echo $a + $b ; break; case "Умножение" : echo $a * $b ; break; case "Вычитание" : echo $a - $b ; break; case "Деление" : echo $a / $b ; break; } вопрос как подвязать выбор действия в форме, к действию в функции и вывести результат? |
| iProphet |
Пост
#123
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 358 С нами с: 5-September 09 |
<script> function matchOperation (form) { var operation = form.operation.value; var a = число, можно достать из поля; var b = тоже любое число, можно написать просто, можно откуда-то вытащить; switch (operation) { case "3" : alert (a+b); break; case "1" : alert (a*b); break; case "4" : alert (a-b); break; case "2" : alert (a/b); break; } </script> <form action="" name="qwe"> <select name="operation" onchange="matchOperation (this.form)"> <option value=1>Умножение</option> <option value=2>Деление</option> <option value=3>Сложение</option> <option value=4>Вычитание</option> </select> </form> Это если хочешь на Javascript осуществить, если на php, то подругому. |
| YoGi |
Пост
#124
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
хочу на пхп)
|
| iProphet |
Пост
#125
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 358 С нами с: 5-September 09 |
Содержимое html:
<form action="путь к php файлу" method="post"> <select name=operation> <option value=1>Умножение</option> <option value=2>Деление</option> <option value=3>Сложение</option> <option value=4>Вычитание</option> </select> </form> Содержимое php файла: function matchOperation ($a, $b, $operation) { switch ($operation) { case "1" : echo $a * $b; break; case "2" : echo $a / $b; break; case "3" : echo $a + $b; break; case "4" : echo $a - $b; break; } } if($_POST['operation']) { $operation = intval ($_POST['operation']); $a = 2; //Может быть любое другое число $b = 2; //Может быть любое другое число matchOperation ($a, $b, $operation); } |
| vGamBIT |
Пост
#126
|
|
Репутация: 95 ![]() Активист ![]() Группа: Пользователи Сообщений: 327 С нами с: 19-June 10 |
хочу на пхп) Приблизительно так(код на наличие опечаток не проверял): <select name="operation"> <option value=1>Умножение</option> <option value=2>Деление</option> <option value=3>Сложение</option> <option value=4>Вычитание</option> </select> к html надо добавить еще форму для отправки параметров(в данном случае a и b ) <?php function matchOperation ($a, $b, $operation) { switch ($operation) { case 3: echo $a + $b; break; case 1: echo $a * $b; break; case 4: echo $a - $b; break; case 2 : echo $a / $b; break; } if(isset($_GET['operation']) && isset($_GET['a']) && isset($_GET['b'])) //проверка ли переданы данные matchOperation($_GET['a'], $_GET['b'], $_GET['operation') ); ?> UPD: Вижу меня уже опередили, но мой вариант немного отличается, т.к. использован метод GET, а он предпочтительней в ситуациях когда значения параметров не изменяют данные. Сообщение отредактировал vGamBIT - Jan 29 2011, 21:46 |
| YoGi |
Пост
#127
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
спасибо сейчас попробую
vGamBIT приблизительно так и думал, а если вместо GET использовать POST? мы ведь isset проверяем прописана ли переменная, а переменная через форму передается POSTом? использовал POST, получилось Сообщение отредактировал YoGi - Jan 29 2011, 22:34 |
| Glavar |
Пост
#128
|
|
Репутация: 10 ![]() Активист ![]() Группа: Пользователи Сообщений: 379 С нами с: 11-May 08 |
есть код:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Он показывает все файлы что есть в данной папке, как ограничить формат файлов? как тут использоватьpreg_match('/[.](JPG)|(jpg)') ? |
| vGamBIT |
Пост
#129
|
|
Репутация: 95 ![]() Активист ![]() Группа: Пользователи Сообщений: 327 С нами с: 19-June 10 |
function printQueue($queue, $path) { foreach ($queue as $file) { if(preg_match( ....BLAHBLAHBLAH....)) printFile($file, $path); } } Даже наверное лучше так: while (false !== ($file = readdir($handle))) { if (is_dir($path.$file) && $file != '.' && $file !='..') printSubDir($file, $path, $queue); else if(preg_match( ....BLAHBLAHBLAH....)) $queue[] = $file; } Сообщение отредактировал vGamBIT - Jan 30 2011, 20:21 |
| Glavar |
Пост
#130
|
|
Репутация: 10 ![]() Активист ![]() Группа: Пользователи Сообщений: 379 С нами с: 11-May 08 |
function printQueue($queue, $path) { foreach ($queue as $file) { if(preg_match( ....BLAHBLAHBLAH....)) printFile($file, $path); } } Даже наверное лучше так: while (false !== ($file = readdir($handle))) { if (is_dir($path.$file) && $file != '.' && $file !='..') printSubDir($file, $path, $queue); else if(preg_match( ....BLAHBLAHBLAH....)) $queue[] = $file; } спс помогло и там, и там написал(навсяк) Сообщение отредактировал Glavar - Jan 30 2011, 20:26 |
| vGamBIT |
Пост
#131
|
|
Репутация: 95 ![]() Активист ![]() Группа: Пользователи Сообщений: 327 С нами с: 19-June 10 |
Достаточно одной проверки, лишние действия - лишняя нагрузка на сервер, потеря быстродействия, больший размер кода.
|
| Glavar |
Пост
#132
|
|
Репутация: 10 ![]() Активист ![]() Группа: Пользователи Сообщений: 379 С нами с: 11-May 08 |
спс за совет
Сообщение отредактировал Glavar - Jan 30 2011, 21:15 |
| Cach |
Пост
#133
|
|
Репутация: 63 ![]() Dividing by Zero ![]() Группа: Пользователи Сообщений: 202 С нами с: 5-September 10 |
Может кто-то помочь с сортировкой?
Есть код, плана: $result = mssql_query("SELECT a,b FROM table ORDER BY a DESC, b DESC"); Хочется, что бы выводимый результат сортировался (a/b)*100 DESC (В формуле a и b тоже должны быть DESC) |
| thisisit |
Пост
#134
|
|
Репутация: 116 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 367 С нами с: 6-March 07 |
А ты вычисляй значения (a/b*100) при добавлении записи в таблицу, назови его каким-то z и тогда сортировка будет ORDER BY z DESC и даже можно будет использовать индекс по полю z и не грузить базу тупыми запросами.
|
| Cach |
Пост
#135
|
|
Репутация: 63 ![]() Dividing by Zero ![]() Группа: Пользователи Сообщений: 202 С нами с: 5-September 10 |
А ты вычисляй значения (a/b*100) при добавлении записи в таблицу, назови его каким-то z и тогда сортировка будет ORDER BY z DESC и даже можно будет использовать индекс по полю z и не грузить базу тупыми запросами. В том то и проблема, что таблица уже готова и заполнена. Изменять её нельзя не при каких условиях |
| AnNE DoM.ini |
Пост
#136
|
|
Репутация: 173 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 412 С нами с: 30-June 07 |
select *,(a/b*100) as order_field from table order by order_field
|
| thisisit |
Пост
#137
|
|
Репутация: 116 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 367 С нами с: 6-March 07 |
Всегда можно изменять. Изучай ALTER TABLE. Если не хочется, можно создать вторую таблицу, где хранить (id, z).
Капец, это же реляционная база данных, она создана для этого. |
| Cach |
Пост
#138
|
|
Репутация: 63 ![]() Dividing by Zero ![]() Группа: Пользователи Сообщений: 202 С нами с: 5-September 10 |
Всегда можно изменять. Изучай ALTER TABLE. Если не хочется, можно создать вторую таблицу, где хранить (id, z). Капец, это же реляционная база данных, она создана для этого. Что изменять можно - я знаю. Только если что-то там трону, выхвачу по шее))) select *,(a/b*100) as order_field from table order by order_field Мне бы так, что бы А и В были DESC. Мне нужно подставлять в формулу от большего к меньшему |
| thisisit |
Пост
#139
|
|
Репутация: 116 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 367 С нами с: 6-March 07 |
|
| AnNE DoM.ini |
Пост
#140
|
|
Репутация: 173 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 412 С нами с: 30-June 07 |
Ну, таблицы разные бывают, если там 3 записи, то можно и забить
|
| PRIHOD |
Пост
#1
|
|
Репутация: 205 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 233 С нами с: 8-August 07 |
Приветствую!
Joomla Хочу, что бы в корзине, выводило сообщение о том, что доставка бесплатная, при условии, если цена выше 200грн имеем $pricesum - сумма к оплате пишу <?php if ($pricesum >= 200){ ?> <?php $freedelivery = 'Для этого товара доставка бесплатная'; ?> <?php }else{?> <?php $freedelivery = 'фиксированная стоимость'; ?> <?php } ?> и вывожу ее echo"<tr> <td colspan=\"2\" align=\"right\">".$freedelivery."</td>; но так не воркает. Подскажете? |
![]() ![]() |
![]() ![]() |
|
Упрощённая версия | Сейчас: 25th January 2026 - 3:59 |
| Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |