Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120

Если нажат конкретный CheckBox, то выполнить действие

13.02.2015, 12:53. Показов 2580. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, в php я новичок, и никак не могу понять, как отследить, какой CheckBox нажат. И в зависимости от нажатого CheckBox выполнить действия. Вот мой код
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<html> 
<head>
<meta name="viewport" content="width=device-width"> 
    <title>Test</title> 
    <style>
   body {
    background: #333; /* ???? ???? */
    color: #fc0; /* ???? ?????? */
   }  
  </style>
</head> 
<body> 
 
<?
$itog = "есть!";
$connect=mysql_connect("localhost","root","123");
 
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
 
$db=mysql_select_db("test2");
 
$sql='select * from `tabl`'; 
$res=mysql_query($sql);      
$count_rows = mysql_num_rows($res); 
 
session_start();
 
if (isset($_POST['submit']))
{
    $_SESSION['click']++;
    $increment=$_SESSION['click'];
    if ($_SESSION['click']!=$count_rows+1)
    {   
    $query="SELECT * FROM tabl WHERE `ID`='$increment' ";
    $result=mysql_query($query);
    
        while($data=mysql_fetch_array($result))
        {
            if($data['Vopros']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Vopros]'></p>";
            }
            if($data['Otvet_1']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Otvet_1]'><input type='checkbox' name='otv1' value = 'on'></p>";
                //////////////вызов проверки нажатия CheckBox//////////////////////
                echo checkbox_verify('otv1');
                ///////////////////////////////
            }
            if($data['Otvet_2']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Otvet_2]'><input type='checkbox' name='otv2'></p>";
            }
            if($data['Otvet_3']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Otvet_3]'><input type='checkbox' name='otv3'></p>";
            }
            if($data['Otvet_4']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Otvet_4]'><input type='checkbox' name='otv4'></p>";
            }
            if($data['Otvet_5']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Otvet_5]'><input type='checkbox' name='otv5'></p>";
            }
            if($data['Otvet_6']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Otvet_6]'><input type='checkbox' name='otv6'></p>";
            }
            if($data['Otvet_7']!=NULL)
            {
                echo "<p><input type='text' size = '40' name='inp1[]' value='$data[Otvet_7]'><input type='checkbox' name='otv7'></p>";
            }
        }
    }
    else
    {
        echo "<p><input type='text' size = '40' name='inp1[]' value='$itog'></p>";
    }
}
/////////////////////////////////////////функция для проыерки checkbox///////////////////////////////////////////////////////////////////////////////
function checkbox_verify($_name)
// Выполняет: проверку checkbox
{
$result=0;// обязательно прописываем, чтобы функция всегда возвращала результат
// проверяем, а есть ли вообще такой checkbox на HTML форме, а то часто промахиваются
if (isset($_REQUEST[$_name]))
{ if ($_REQUEST[$_name]=='on') { $result=1; } else { $result=0; }
}
return $result;
}
////////////////////////////////////////////////Проверка CheckBox вариант_2////////////////////////////////////////////////////////////////////////////////  
if (isset($_POST['otv1']))
{
    echo "ГОТОВО!!!";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
if (isset($_POST['submit1']))
{
    $_SESSION['click']=0;
}
?>
 
<form method="post">
    <input type="submit" name="submit" value = "Следующий вопрос">
    <input type="submit" name="submit1" value = "Снова">
    <!--<input type="text" name="text" value=<?echo $_SESSION['click']?>>-->
    
</form>
 
 </body>
</html>
Помогите разобраться, пожалуйста. Те варианты, которые я пробовал (отслеживать посредством isset ($_POST) и посредством создания специальной функции, которая в результате своего выполнения должна показывать 0 или 1 в зависимости от того, нажат CheckBox или нет не работает! Что не правильно? Два эти варианта приведены в коде)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2015, 12:53
Ответы с готовыми решениями:

Массив имен (А-Я), необходимо выполнить действие если пошла другая буква
Доброго всем! Ребята, столкнулся с такой задачкой и моих знаний пока не хватает... Есть массив имён вида: (Андрей, Алина, Борис,...

Если число от 0 до 5 выполнить действие
Извиняюсь, но не смог найти ответ на свой вопрос, в интернете. как правильно написать в c# int i =3 if i от 0 до 5 то действие

Если нажата клавиша, выполнить действие...
Как сделать, чтобы: Если нажата клавиша, допустим Enter, то загрузится Paint

11
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
13.02.2015, 13:13
PHP работает на серверной стороне. Чтобы новые данные обрабатывались, нужно перезагрузить страницу.
То, чего вы хотите, нужно делать с помощью JavaScript.
1
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
13.02.2015, 14:20  [ТС]
А на php вообще никак не решить проблему? Мне нужно чтобы выбранное текстовое поле записывались в таблицу БД sql...
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
13.02.2015, 14:45
Почему нет? Отправьте содержимое формы на обработчик, который в свою очередь записывает данные в БД.
1
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
13.02.2015, 15:00  [ТС]
Я извиняюсь за глупый вопрос, а как это будет выглядеть синтаксически для моего случая? Отдельный документ. Php в .htdocs или можно в этом же документе? Что это будет? Метод какой-то?
0
84 / 9 / 2
Регистрация: 30.12.2014
Сообщений: 111
13.02.2015, 15:56
Всё элементарно, создаёшь форму где чекбоксы, и обработчик который обрабатывает всё что было введено в чекбоксы. Можно даже в одном и том же файле.
1
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
13.02.2015, 23:03  [ТС]
Еще вопрос, скажите, пожалуйста, как добавить запись в конкретную ячейку таблицы БД sql? Ну или последовательно заполнить всю строку с идентификатором ID=1, например?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
13.02.2015, 23:59
Цитата Сообщение от Serega@93-93 Посмотреть сообщение
скажите, пожалуйста, как добавить запись в конкретную ячейку таблицы БД sql?
SQL
1
INSERT INTO `table_name` SET `column1`='value1', `column2`='value2' ...
1
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
14.02.2015, 23:23  [ТС]
Спасибо, но я не совсем это имел ввиду. Мне нужно (не правильно выразился) не записать значение в конкретную ячейку, а изменить значение null на нужное мне. Но для этого мне сначала нужно получить последнее значение поля. Я делаю так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
$link = mysql_connect('localhost', 'root', '123');
if (!$link) 
{
    die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('test2');
 
mysql_query("INSERT INTO mytable (itog) values ('ID_User')");
printf("Идентификатор последней вставленной записи %d\n", mysql_insert_id());
$number = mysql_insert_id();
 
mysql_query("SET NAMES cp1251");
$result=mysql_query("select * from itog", $link);
printf("Имя: %s<br>\n", mysql_result($result,$number,"ID_User")); //--таблица, идентификатор, поле
?>
Но последнее значение поля всегда выдает "0". Почему? Как исправить так, чтобы в зависимости от идентификатора $number выводилось какое-то значение поля? P.S. $number не инкрементируемое поле.

Добавлено через 13 часов 59 минут
Товарищи, есть хоть какие-то идеи??? В диплом этого кусочка не хватает (
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
15.02.2015, 00:19
Serega@93-93, откуда возмется последнее значение, если Вы не делали вставку? Его просто нет.
Сделайте вставку, какого-то значения,а потом уже запрашивайте
1
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
15.02.2015, 15:12  [ТС]
Значение добавляется, когда новый пользователь начинает тестирование. В таблице базы данных, отвечающей за результат тестирования, в поле "id_user" записывается идентификатор пользователя. Первый подключившийся получит идентификатор 1, второй, считая, что предыдущий =1 прибавится 1 и идентификатор второго пользователя =2 и т.д. Сложность в том, что я не могу считать последнее значение...

Добавлено через 1 минуту
А точнее мне нужно получить только идентификатор последнего значения поля
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
15.02.2015, 18:35
Serega@93-93, я писал про код, в 9м сообщении.
Регистрация есть на сайте? Берите с нее айди пользователя. Если нет, то назначайте какой-то временный идентификатор и также подбирайте последний айди. Я Ваш код читать не могу, там 100500 поваленных деревьев
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2015, 18:35
Помогаю со студенческими работами здесь

Если TMemo не пуст, то выполнить действие
как сделать если текст в мемо 1, то выполнять действие? procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); ...

Выполнить действие , если нажата определённая клавиша
Как можно сделать так, что бы при нажатии на клавишу , определённую, в программе выполнялось определённое действие, а при повторном -...

Выполнить действие, если размер папки превышает 10 МБ
Здравствуйте !!! как в бат сделать такое если папка больше 10mb запуск файла не происходит если меньше происходить запуск файла. Спасибо ...

Условие: если строка пустая - выполнить действие
Здравствуйте, если можете, помогите создать такое условие: &quot;Условие: если строка пустая - выполнить действие...&quot;, на основе...

Сравнить дату с текущей, если ДА, выполнить действие
Здравствуйте! Хочу сравнить дату, которая заносится в переменную datetime, с текущей (11.06.2013), но выскакивает ошибка: ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru