1

Тема: Переключатели

подскажите пожалуйста как в зависимости от того, какой переключатель выбран начать исполнение кода...есть два переключателя
echo '<input type="radio" name="rdi[1]" value="1">Зачеты';
echo '<input type="radio" name="rdi[2]" value="2">Экзамены'

и кнопка
echo '<input type="submit" value="Посмотреть">';

далее должен выполняться код в зависимости от того какой переключатель выбран..и обязательно ли использовать тег <form action="" method="GET">?

2

Re: Переключатели

Чтобы переключатели были связаны, надо указать одинаковое имя в name:

echo '<input type="radio" name="rdi" value="1">Зачеты';
echo '<input type="radio" name="rdi" value="2">Экзамены';

Элементы формы должны находиться внутри тега <form>.

Далее, при разборе данных полученных из формы, проверка переключателя делается так:

if (isset($_POST['rdi']) && $_POST['rdi'] == 1) {
  // Переключатель №1
} else if (isset($_POST['rdi']) && $_POST['rdi'] == 2) {
  // Переключатель №2
}

3

Re: Переключатели

echo '<input type="radio" name="rdi" value="1">Зачеты';
  echo '<input type="radio" name="rdi" value="2">Экзамены';echo '<br>';

  echo '<input type="submit" name="predm" value="Посмотреть"/>';
if (isset($_REQUEST['predm'])){
 
  if (isset($_POST['rdi']) && $_POST['rdi'] == 1) {
  //тут идет построение одной таблицы
}}
  else if (isset($_POST['rdi']) && $_POST['rdi'] == 2) {
//тут другая таблица
}
}

не срабатывает кнопка..хотя вроде условие задал

4

Re: Переключатели

VitoS сказал:

не срабатывает кнопка..хотя вроде условие задал

Что-то там со скобками не то.

Если <form method="post"> то будет $_POST['rdi']. Если <form method="get"> то будет $_GET['rdi'].

5

Re: Переключатели

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

6

Re: Переключатели

все, вроде понял

7

Re: Переключатели

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

$kolvo = mysql_query("select * from studs");
$num = count(mysql_fetch_array($kolvo));
echo "Число студентов в группе ".$num;

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

8

Re: Переключатели

Подсчет строк лучше делать специальной функцией COUNT(*) прямо в запросе. Это более гибкий и менее избыточный способ.

$kolvo = mysql_query("SELECT COUNT(*) AS `count` FROM `studs`");
$row = mysql_fetch_assoc($kolvo);
echo "Число студентов в группе " . $row['count'];

9

Re: Переключатели

спасибо

10

Re: Переключатели

А не проще посчитать кол-во строк таким запросом?

$numStuds=mysql_num_rows(mysql_query("SELECT * FROM `studs`"));
echo "Число студентов в группе " . $numStuds;

11

Re: Переключатели

[fly сказал:

]А не проще посчитать кол-во строк таким запросом?

Нет, потому что в вашем случае будут возвращены лишние данные, когда нужен только подсчет строк.

12

Re: Переключатели

О каких данных идет речь, если массив $numStuds выводит только число строк в таблице?

13

Re: Переключатели

[fly сказал:

]О каких данных идет речь, если массив $numStuds выводит только число строк в таблице?

Данные возвращаемые запросом - SELECT * FROM `studs`