Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
1

Отправка/обработка формы с несколькими полями у которых один и тот же class или id

15.08.2016, 20:22. Показов 1118. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Начал реализацию корзины и столкнулся с проблемой.
После вывода всех продуктов которые находились в сессии, необходимо проверить значения поля колл-тво и сверить не изменилось ли количество. Если количество изменилось, необходимо заменить данные в массиве.

Вопрос: Как отправить такую форму, и на другой странице обработчике обработать ее когда у них одинаковый класс и name?

Заранее благодарю за помощь.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2016, 20:22
Ответы с готовыми решениями:

Поля разделены одним или несколькими пробелами. Требуется организовать текстовый файл с полями
Каждая строка текстового файла имеет следующую структуру: ...

Поля разделены одним или несколькими пробелами. Требуется организовать текстовый файл с полями
Каждая строка текстового файла имеет следующую структуру:...

Обработка данных с формы с необязательными полями
Добрый день! Есть форма из 4-х полей, все они являются необязательными. Форма нужна, чтоб в...

Обработка формы сайта на Go. Отправка данных формы на email
Здравствуйте, я новичок в Go. Как реализовать отправку данных на email. Есть сайт,но хочу...

18
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
15.08.2016, 20:23  [ТС] 2
Прикрепил скриншот для наглядности и понимания моих слов
Миниатюры
Отправка/обработка формы с несколькими полями у которых один и тот же class или id  
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
15.08.2016, 20:30 3
Цитата Сообщение от Kazachek Посмотреть сообщение
Прикрепил скриншот для наглядности и понимания моих слов
лучше код вывода прикрепите ;)
0
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
15.08.2016, 20:34  [ТС] 4
Цитата Сообщение от Cra3y Посмотреть сообщение
лучше код вывода прикрепите
PHP
1
2
3
4
5
6
7
8
9
10
<tr>
    <td style='border-bottom:1px solid #ccc;width:150px;'>$prod_img</td>
    <td style='border-bottom:1px solid #ccc;width:250px; padding-left:10px;'>$prod_name</td>
    <td style='border-bottom:1px solid #ccc; width:120px;font-weight:bold;' align='center'>$prod_price</td>
    <td style='border-bottom:1px solid #ccc; width:120px;' align='center'>
    <input class='pcount' id='$prod_id' type='text' value='$p_val' style='width:50px; padding:3px;text-align:center;'></td>
    <td style='border-bottom:1px solid #ccc;width:120px;font-weight:bold;' align='center'>$p_prc</td>
    <td style='border-bottom:1px solid #ccc;width:100px;' align='center'><img src='img/del_from_cart.png' width='32' style='cursor:pointer;'></td>
    
</tr>
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
15.08.2016, 20:42 5
Лучший ответ Сообщение было отмечено Kazachek как решение

Решение

Kazachek, значение name может быть типа
HTML5
1
<input type='text' name='field[$prod_id]'/>
тогда в обработчике все поля с таким именем будут представлены в виде массива
PHP
1
var_dump($_REQUEST['field']);
1
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
15.08.2016, 20:48  [ТС] 6
Цитата Сообщение от Cra3y Посмотреть сообщение
тогда в обработчике все поля с таким именем будут представлены в виде массива
как потом написать обработку этих полей и сравнить с моим массивом который в сессиях?

я знаю как назначить, но как определить id и перезаписать по нему не знаю. Даже в голову не приходит как это можно сделать((

PHP
1
2
3
4
5
6
if(isset($_SESSION['cart'])){
        if(isset($_SESSION['cart'][$id])){
            $_SESSION['cart'][$id]['cnt'] = $p_count;
        }
 
}
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
15.08.2016, 20:56 7
Цитата Сообщение от Kazachek Посмотреть сообщение
как потом написать обработку этих полей
как то так
PHP
1
2
3
4
5
$fields = $_REQUEST['fields'];
foreach($fields as $id => &$count) {
    $count = (int)$count;
    var_dump($_SESSION['cart'][$id]['cnt'] === $count);
}
1
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
16.08.2016, 12:45  [ТС] 8
Цитата Сообщение от Cra3y Посмотреть сообщение
lds as $id => &$count) {
* * $coun
Цитата Сообщение от Cra3y Посмотреть сообщение
как то так
Можете объяснить чуть по подробнее, так как не могу понять некоторые детали:

PHP
1
2
3
4
5
6
7
$fields = $_REQUEST['fields']; /*Все данные грузятся в массив $fields*/
 
foreach($fields as $id => &$count) - Разбивка массива $fields на $id и $count
 
$count = (int)$count; /*Переобразование на число на всякий случай*/
 
 var_dump($_SESSION['cart'][$id]['cnt'] === $count) - вот это не понял
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
16.08.2016, 22:36 9
Цитата Сообщение от Kazachek Посмотреть сообщение
вот это не понял
это
Цитата Сообщение от Kazachek Посмотреть сообщение
сравнить с моим массивом который в сессиях
1
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
17.08.2016, 06:51  [ТС] 10
Cra3y,

скопировал и вставил указанный код в файл обработчика. Но данные в массиве не поменялись((
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
17.08.2016, 08:21 11
Цитата Сообщение от Kazachek Посмотреть сообщение
Но данные в массиве не поменялись((
ну так этот код только сравнивает, а не меняет данные
1
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
17.08.2016, 10:06  [ТС] 12
Cra3y, Я правильно понял?
PHP
1
2
3
4
5
6
7
$fields = $_REQUEST['fields'];
foreach($fields as $id => &$count) {
    $count = (int)$count;
   if( var_dump($_SESSION['cart'][$id]['cnt'] === $count)){
    #Значения совпали далее перезаписываем
   }
}
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
17.08.2016, 10:13 13
Цитата Сообщение от Kazachek Посмотреть сообщение
Я правильно понял?
только var_dump служит для отладочного вывода значений - уберите его
1
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
17.08.2016, 14:19  [ТС] 14
Cra3y,
Незнаю в чем может быть проблема. Все сделал но всё равно не работает.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
 
$fields = $_REQUEST['fields'];
foreach($fields as $id => &$count) {
    $count = (int)$count;
   if( ($_SESSION['cart'][$id]['cnt'] === $count)){
    #Значения совпали далее перезаписываем
        echo $count;
        echo "123";
   }else{
    echo "321";
   }
}
 
 
?>
Вот так тоже не захотел работать

PHP
1
2
3
4
5
6
7
8
9
10
11
$fields = $_REQUEST['fields'];
foreach($fields as $id => &$count) {
    $count = (int)$count;
   if($_SESSION['cart'][$id]['cnt'] === $count){
    #Значения совпали далее перезаписываем
        echo $count;
        echo "123";
   }else{
    echo "321";
   }
}
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
17.08.2016, 15:00 15
Kazachek, у Вас типы данных в $count и в $_SESSION['cart'][$id]['cnt'] одинаковые?
1
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
17.08.2016, 15:17  [ТС] 16
Para bellum, даже если не одинаковые второе условие же должно сработать. Он вообще не печатает ничего.

Вот код с помощью которого пытался проверить:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
echo "Начало<br>";
$fields = $_REQUEST['fields'];
echo "1 присваивание<br>";
foreach($fields as $id => &$count) {
    $count = (int)$count;
    echo  $count;
   if( ($_SESSION['cart'][$id]['cnt'] === $count)){
    #Значения совпали далее перезаписываем
        echo $count;
        echo "Совпадение<br>";
   }else{
    echo "Несовпадение<br>";
   }
   
}
 
echo "Конец";
?>
Результат:
Начало
1 присваивание
Конец
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
17.08.2016, 15:27 17
Сделайте:
PHP
1
var_dump($fields);
И посмотрите, что там.
0
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
17.08.2016, 15:42  [ТС] 18
Цитата Сообщение от Para bellum Посмотреть сообщение
Сделайте:
PHPВыделить код
1
var_dump($fields);
И посмотрите, что там.
Делал ничего. Но когда делаю самого реквеста, всё выводится.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
var_dump($_REQUEST['field']);
 
echo "Начало<br>";
$fields = $_REQUEST['fields'];
echo "1 присваивание<br>";
foreach($fields as $id => &$count) {
    $count = (int)$count;
    echo  $count;
   if( ($_SESSION['cart'][$id]['cnt'] === $count)){
    #Значения совпали далее перезаписываем
        echo $count;
        echo "Совпадение<br>";
   }else{
    echo "Несовпадение<br>";
   }
   
}
var_dump($fields);
echo "Конец";
?>
Результат:
array(4) { [5]=> string(2) "90" [6]=> string(3) "129" [9]=> string(1) "1" [10]=> string(1) "3" } Начало
1 присваивание
NULL Конец
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
17.08.2016, 16:00 19
А ничего, что в первом var_dump Вы указываете field, а переменной fields присваиваете fields из запроса?

Добавлено через 1 минуту
Вы бы давно увидели, если бы включили вывод ошибок. Обязательно включайте вывод абсолютно всех ошибок во время разработки.
1
17.08.2016, 16:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2016, 16:00
Помогаю со студенческими работами здесь

Философия. Можете привести примеры разных классов, в которых реализуется один и тот же интерфейс?
Причём классам должны соответствовать объекты или явления из как можно более далёких областей...

FileStream или чтение и запись в один и тот же файл
Из темы уже можно было понять суть проблемы - есть файл и например из центра вырезается кусок путем...

Кто знает, можно ли сразу во все формы проэкта добавить один и тот же обработчик события?
Кто знает, можно ли сразу во все формы проэкта добавить один и тот же обработчик события, не...

Обработка и отправка формы
В общем скажу, что я сделал корзину для оформления заказов, на CMS DLE 10. В основу корзины был...

Обработка формы и отправка данных в MySQL?
Доброго времени суток!!! Подскажите пожалуйста где ошибка всю голову сломал. Обработка формы и...

Один и тот же запрос работает как не один и тот же запрос
Вот запрос первый SELECT id_sclad, id_nomenklatura , sum(netto) AS ves FROM main WHERE enable = 1 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru