Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Радиокнопки и видимость элементов формы 
:(
    Опции темы
jDeuterium
Дата 9.3.2013, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.3.2012

Репутация: нет
Всего: нет



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

echo "<h2>Был/не был</h2>";
$reslt=mysql_query("select * from `absence` where `student_id`=" .$_REQUEST['student_id']. " and `lesson_id`=" .$_REQUEST['lesson_id']. "");
if (mysql_fetch_assoc($reslt)) {
$wasnt="checked";$was=""; //Эти переменные используются, чтобы
//отметить соответствующую радиокнопку
$grade_display="none"; //Эта переменная определяет видимость
//блока с оценками
} else {
$was="checked";$wasnt="";
$grade_display="block";
}
echo '<form action="cell.php" method="post">';
echo "<p><input type='radio' name='abs' value='0' $was onclick='document.location.href=\"cell.php?present=1&student_id=$student_id&lesson_id=$lesson_id\"'>
&nbsp;Был на уроке";
echo "<p><input type='radio' name='abs' value='0' $wasnt onclick='document.location.href=\"cell.php?present=0&student_id=$student_id&lesson_id=$lesson_id\"'>
&nbsp;Пропустил урок";
//Ниже -- блок с оценками. Он может быть виден или не виден
echo "</form><div id='grades' style='display:$grade_display'>";


Вот запрос
Код

//В переменной $present могут быть переданы значения 0 или 1
// 0 -- ученик пропустил данный урок
// 1 -- ученик был на данном уроке
$present=intval($_REQUEST['present']);
if ($present = 1) {
//Если ученик был на данном уроке,
//уберем отметку о пропуске из таблицы absence
$que = mysql_query("delete from `absence` where student_id=" .$_REQUEST['student_id']. " and lesson_id=" .$_REQUEST['lesson_id']. "");
$present=intval($_REQUEST['present']);
}
if ($present = 0) {
//Если же ученик пропустил урок...
// ... уберем все его оценки за данный урок из таблицы grade
$qu =mysql_query("delete from `grade` where student_id=" .$_REQUEST['student_id']. " and lesson_id=" .$_REQUEST['lesson_id']. "");
// ... добавим отметку о пропуске в таблицу absence
$q =mysql_query("insert into `absence` (student_id, lesson_id) VALUES ('" .$_REQUEST['student_id']. "', '" .$_REQUEST['lesson_id']. "')");
}

PM MAIL   Вверх
Arantir
Дата 9.3.2013, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Ой, как все стрёмно сделано =) Надо бы учебник получше подыскать =)

Честно, не знаю что ответить. Потому, что мне кажется, что прямой ответ самой сути проблемы не изменит, так как тут бы стоило поменять все на корню. Например, зачем вам вообще POST-форма, если запрос идет через GET по клику на элемент?..


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

Это сообщение отредактировал(а) Arantir - 9.3.2013, 16:45


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
jDeuterium
Дата 9.3.2013, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.3.2012

Репутация: нет
Всего: нет



Запросы как раз таки не выполняються
PM MAIL   Вверх
Arantir
Дата 9.3.2013, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



А база данных есть? А вы к ней подключились? Успешно?



--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
jDeuterium
Дата 9.3.2013, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.3.2012

Репутация: нет
Всего: нет



подключение и все прочие запросы на странице работают, но вот этот кусок кода мне не дает жизни

Вот весь код страницы, может поможет:
Код

<?php
define('_IN_JOHNCMS', 1); 
$textl = 'Страница классного журнала'; 
require_once ("../incfiles/core.php"); 
require_once ("../incfiles/head.php"); 

$student_id=$_REQUEST['student_id']; //принимаем переменные с edit.php
$lesson_id=$_REQUEST['lesson_id'];

if (isset($_REQUEST['sent'])) {
$query=mysql_query("INSERT INTO `grade` (grade, student_id, lesson_id) VALUES ('" .$_REQUEST['grade']. "', '" .$_REQUEST['student_id']. "', '" .$_REQUEST['lesson_id']. "')");
}

//В переменной $present могут быть переданы значения 0 или 1
// 0 -- ученик пропустил данный урок
// 1 -- ученик был на данном уроке
$present=intval($_REQUEST['present']);
if ($present = 1) {
//Если ученик был на данном уроке,
//уберем отметку о пропуске из таблицы absence
$que = mysql_query("delete from `absence` where student_id=" .$_REQUEST['student_id']. " and lesson_id=" .$_REQUEST['lesson_id']. "");
$present=intval($_REQUEST['present']);
}
if ($present = 0) {
//Если же ученик пропустил урок...
// ... уберем все его оценки за данный урок из таблицы grade
$qu =mysql_query("delete from `grade` where student_id=" .$_REQUEST['student_id']. " and lesson_id=" .$_REQUEST['lesson_id']. "");
// ... добавим отметку о пропуске в таблицу absence
$q =mysql_query("insert into `absence` (student_id, lesson_id) VALUES ('" .$_REQUEST['student_id']. "', '" .$_REQUEST['lesson_id']. "')");
}


//Переменная $delete будет определена в том случае,
//если мы удаляем оценку ученика за данный урок
$delete=intval($_REQUEST['delete']);
if ($delete > 0) 
{
$quer=mysql_query('delete from `grade` where grade_id='.$delete);
echo mysql_error();
}

function DayMonth($dt) {
return substr($dt,8,2)."/".substr($dt,5,2);
}
echo '<script type="text/javascript" src="grade.js"></script>';
error_reporting(E_ALL);

$result=mysql_query("select student_id,name,surname from student where student_id='$student_id'");
$student=mysql_fetch_assoc($result);
echo "<p>Ученик: <b>".$student['name']." ".$student['surname']."</b> (№ ".$student['student_id']." в журнале)";
$res=mysql_query("select lesson_id,lesson_date,subject from lesson where lesson_id='$lesson_id'");
$lesson=mysql_fetch_assoc($res);
echo "<p>Урок: <b>".DayMonth($lesson['lesson_date'])."</b> по теме <i>".$lesson['subject']."</i>";
echo "<h2>Был/не был</h2>";
$reslt=mysql_query("select * from `absence` where `student_id`=" .$_REQUEST['student_id']. " and `lesson_id`=" .$_REQUEST['lesson_id']. "");
if (mysql_fetch_assoc($reslt)) {
$wasnt="checked";$was=""; //Эти переменные используются, чтобы
//отметить соответствующую радиокнопку
$grade_display="none"; //Эта переменная определяет видимость
//блока с оценками
} else {
$was="checked";$wasnt="";
$grade_display="block";
}
echo '<form action="cell.php" method="post">';
echo "<p><input type='radio' name='abs' value='0' $was onclick='document.location.href=\"cell.php?present=1&student_id=$student_id&lesson_id=$lesson_id\"'>
&nbsp;Был на уроке";
echo "<p><input type='radio' name='abs' value='0' $wasnt onclick='document.location.href=\"cell.php?present=0&student_id=$student_id&lesson_id=$lesson_id\"'>
&nbsp;Пропустил урок";
//Ниже -- блок с оценками. Он может быть виден или не виден
echo "</form><div id='grades' style='display:$grade_display'>";

echo "<h2>Оценки за урок</h2>";
echo '<form action="cell.php" method="post">';

//Два спрятанных поля, которые не видит пользователь
echo "<input type='hidden' name='student_id' value='$student_id'>";
echo "<input type='hidden' name='lesson_id' value='$lesson_id'>";

echo '<table border="1">';

$rest=mysql_query("select `grade_id`,`grade` from `grade` where `student_id`='$student_id' and `lesson_id`='$lesson_id'");
while ($grade=mysql_fetch_assoc($rest)) {
echo "<tr>";
echo "<td>".$grade['grade']."</td><td><input type='button' value='Удалить' onclick='document.location.href=\"cell.php?delete=".$grade['grade_id']."&student_id=$student_id&lesson_id=$lesson_id\"'>
</td>";
echo "</tr>";
}
echo "<tr><td><input type='text' name='grade' size='2'></td><td><input type='submit' name='sent' value='Поставить'></td></tr></table></div></form>";
echo "<p><a href='edit.php'>На страницу журнала</a></p>";
require_once ("../incfiles/end.php"); 
?>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.