76 (изменено: Maxnight, 2011-05-24 01:07:58)

Re: Выпадающий список

у меня получилось только сдвигается футер на сайте:  <tr>
    <td><img src="img/footer.jpg" width="1000"></td>
  </tr>

как-будто гдето лишний тег 

и таблица в цикле выводится
и по умолчанию в 3 списке стоит первое значение и после клика по нему все выводится....

мне кажется в этой строке ошибка, так как у меня название специальности курсу в постмасиве не передается

$kurs .= "<option value='".$result['id_kurs']."'" . (isset($_POST['nazv_specialnosti']) && $_POST['nazv_specialnosti'] == $result['id_kurs'] ? ' selected="selected"' : '') . ">".$result['nazv_kursa']."</option>";

77

Re: Выпадающий список

$kurs =  "<p><select name='nazv_kursa' size='1' onchange=\"this.form.submit();\">;
               <option value='vse'>Выберите курс</option>";
             $query = mysql_query("SELECT * FROM kurs");
             $result = mysql_fetch_array($query);

          do
        {
$kurs .= "<option value='".$result['id_kurs']."'" . (isset($_POST['nazv_specialnosti']) && $_POST['nazv_specialnosti'] == $result['id_kurs'] ? ' selected="selected"' : '') . ">".$result['nazv_kursa']."</option>";

        }
while($result = mysql_fetch_array($query));

$kurs .= "</select>";
echo $kurs."<br>"."<br>";
}

if (!empty($_POST['nazv_ciklovKomis']) && !empty($_POST['nazv_specialnosti']) && !empty($_POST['nazv_kursa'])) {


   echo '<p><table border = "1">
          <tr>
          <th>Название дисциплины</th>
          <th>Количество часов</th>
          <th>Лекции</th>
          <th>Практические</th>
          <th>Самостоятельные</th>
          <th>Преподаватель</th>
          </tr>';
          $result = mysql_query ("SELECT nazv_discipline, kol_chasov, lekcii, prackt_seminari, samostoyatel, prepod_lastname, CONCAT(`prepod_lastname`, ' ', `prepod_name`, ' ', `prepod_otchestvo`) AS `full_name`
FROM ycheb_plan, Discipline, Prepodavatel, kurs
WHERE ycheb_plan.id_kurs = '" . addslashes($_POST['nazv_kursa']) . "'
AND ycheb_plan.id_discipline = Discipline.id_discipline
AND ycheb_plan.id_prepodavatel = Prepodavatel.id_prepodavatel",$db);
       
          
while ($myrow = mysql_fetch_array ($result)){
    $nazv_discipline = $myrow["nazv_discipline"];
    $kol_chasov = $myrow["kol_chasov"];
    $lekcii = $myrow["lekcii"];
    $prackt_seminari = $myrow["prackt_seminari"];
    $samostoyatel = $myrow["samostoyatel"];
    $full_name = $myrow["full_name"];
    echo "<tr>";
    echo "<td>$nazv_discipline</td>";
    echo "<td>$kol_chasov</td>";
    echo "<td>$lekcii</td>";
    echo "<td>$prackt_seminari</td>";
    echo "<td>$samostoyatel</td>";
    echo "<td>$full_name</td>";
    echo "</tr>";
}
if (!empty($_POST['nazv_ciklovKomis']) && !empty($_POST['nazv_specialnosti']) && !empty($_POST['nazv_kursa']) && !empty($_POST['nazv_discipline'])); {
}
   
}
mysql_close($db);
echo '</table>';
echo "</form>";
?>

78

Re: Выпадающий список

Maxnight сказал:

получилось только сдвигается футер на сайте:  <tr>
    <td><img src="img/footer.jpg" width="1000"></td>
  </tr>

В HTML разметке поможет разобраться Firebug, расширение для Firefox.

Maxnight сказал:

мне кажется в этой строке ошибка, так как у меня название специальности курсу в постмасиве не передается
$kurs .= "<option value='".$result['id_kurs']."'" . (isset($_POST['nazv_specialnosti']) && $_POST['nazv_specialnosti'] == $result['id_kurs'] ? ' selected="selected"' : '') . ">".$result['nazv_kursa']."</option>";

Разбирайтесь, я здесь помочь не могу.

79 (изменено: Maxnight, 2011-05-26 18:29:34)

Re: Выпадающий список

подскажите пожалуйста зачем здесь знак вопроса?   

$spec .= "<option value='".$result['id_specialnost']."'" . (isset($_POST['nazv_specialnosti']) && $_POST['nazv_specialnosti'] == $result['id_specialnost'] ? ' selected="selected"' : '') . ">".$result['nazv_specialnosti']."</option>";

80

Re: Выпадающий список

Это называется тернарный оператор и данная строка:
(isset($_POST['nazv_specialnosti']) && $_POST['nazv_specialnosti'] == $result['id_specialnost'] ? ' selected="selected"' : '')
полностью идентична такой:
if (isset($_POST['nazv_specialnosti']) && $_POST['nazv_specialnosti'] == $result['id_specialnost']) {
$str = ' selected="selected"';
} else {
$str = '';
}
Но, очевидно, что для записи в одну строку, использование тернарного оператора дает значительно более короткую и хорошо читаемую строку кода.

Maxnight сказал:

4ым списком заместо студентов хочю добавить другой список "Курсы"

По той структуре, которую вы нарисовали, я понял, что ID_группы - это уникальный индекс группы, значит выходит, что у одной группы может быть только один курс. Если это не так, то структуру необходимо переделать, добавив в таблицу "Курс" поле индекса из таблицы "Группы".

81

Re: Выпадающий список

Вот так вот?
http://i073.radikal.ru/1105/0d/6e387902bbaft.jpg

82

Re: Выпадающий список

Maxnight сказал:

Вот так вот?

По крайней мере, для формирования списка Курсов, эта структура работать будет.

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

83 (изменено: Maxnight, 2011-05-28 16:02:59)

Re: Выпадающий список

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

причем запрос формирования курсов выглядит так:

             $query = mysql_query("SELECT * FROM kurs ORDER BY id_kurs");

в постмассиве названия специальностей не передаются, т.к. напрямую специальность в базе у меня не связана с курсами

http://s41.radikal.ru/i093/1105/bc/53f5bac7c464t.jpg

84

Re: Выпадающий список

А если делать нагрузку по преподавателям: чтобы выводились все дисциплины кот. ведет преподаватель на данном курсе.  Я включил в таблицу курсы ID_преподавателя и теперь преподаватели связаны с таблицами учебный план,дисциплины и курсы

http://s07.radikal.ru/i180/1105/1b/828eab088701t.jpg

85

Re: Выпадающий список

Maxnight сказал:

напрямую специальность в базе у меня не связана с курсами

Таблица курсов связана с таблицей групп, которая в свою очередь связана с таблицей специальности, значит таблица курсов связана с таблицей специальности через таблицу групп.

86 (изменено: Maxnight, 2011-05-28 16:38:48)

Re: Выпадающий список

2я форма работает у меня! Большое спасибо!

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

Я правильно связал преподавателей с курсами?

это мне нужно каждый курс формировать с преподавателем? на тех курсах когда он ведет какую-то дисциплину?

с оценками студентов было легко, а с курсами запутаться можно!

87

Re: Выпадающий список

изменил запрос на формирования курсов и получилось:

$query = mysql_query("SELECT * FROM kurs WHERE id_prepodavatel='" . addslashes($_POST['prepod_lastname']) . "' ORDER BY id_kurs");

вот со структурой посмотрите правильно так?

88

Re: Выпадающий список

Не смог разобраться, поэтому надо сначала.

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

89

Re: Выпадающий список

1й из таблицы ЦК
2й из Специальности
3й из Преподаватели
4й мз Курсы

таблица из Учебный план

90 (изменено: Maxnight, 2011-05-28 17:50:12)

Re: Выпадающий список

мне в таблице выводит всех преподавателей, хотя я выбрал конктретного в данном семестре,

а нужно чтоб было только один! это можно как сделать в запросе может чтото изменить?
http://s43.radikal.ru/i101/1105/43/ea652fec6f89t.jpg

91

Re: Выпадающий список

Maxnight сказал:

мне в таблице выводит всех преподавателей, хотя я выбрал конктретного в данном семестре

Проверяйте работу запросов в phpMyAdmin. Если запрос работает правильно, то смотрите как запрос формируется в скрипте.

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

92 (изменено: павелsimon, 2012-03-09 01:42:11)

Re: Выпадающий список

Здравствуйте подскажите пожалуйста а как поправить код чтоб после выбора в списке значение оставалось то что выбрал.


</head>

<body>
<?php   
echo '<form method="post" action="">';
$ck = "<p><select id='id_ciklovKomis' name='nazv_ciklovKomis' size='1' onchange=\"this.form.submit();\">;
        <option value='vse'>Выберите цикловую комисию</option>";
          $query = mysql_query("SELECT * FROM CiklovKomis ORDER BY id_ciklovKomis");
              $result = mysql_fetch_array($query);
                do
                {
                      $ck .= "<option value='".$result['id_ciklovKomis']."'>".$result['nazv_ciklovKomis']."</option>";
                }
               while($result = mysql_fetch_array($query));
$ck.= "</select>";
echo $ck."<br>"."<br>";
if (!empty($_POST['nazv_ciklovKomis'])) {
     
     $spec = "<p><select id='id_specialnost' name='nazv_specialnosti' size='1' onchange=\"this.form.submit();\">;
                <option value='vse'>Выберите cпециальность</option>";
      $query = mysql_query("SELECT * FROM specialnost
WHERE id_ciklovKomis = '" . addslashes($_POST['nazv_ciklovKomis']) . "' ORDER BY id_specialnost");
                $result = mysql_fetch_array($query);
                do
                {
                       $spec .= "<option value='".$result['id_specialnost']."'>".$result['nazv_specialnosti']."</option>";
                }
                while($result = mysql_fetch_array($query));
$spec .= "</select>";
echo $spec."<br>"."<br>";
}
if (!empty($_POST['nazv_ciklovKomis']) && !empty($_POST['nazv_specialnosti'])) {
   
$grupa = "<p><select id='id_groups' name='nazv_groups' size='1' onchange=\"this.form.submit();\">;
                <option value='vse'>Выберите группу</option>";
                $query = mysql_query("SELECT * FROM Groups
WHERE id_specialnost='" . addslashes($_POST['nazv_specialnosti']) . "'    ORDER BY id_groups");
                $result = mysql_fetch_array($query);
                do
                {
                        $grupa .= "<option value='".$result['id_groups']."'>".$result['nazv_groups']."</option>";
                }
                while($result = mysql_fetch_array($query));
$grupa .= "</select>";
echo $grupa."<br>"."<br>";
if (!empty($_POST['nazv_ciklovKomis']) && !empty($_POST['nazv_specialnosti']) && !empty($_POST['nazv_groups'])); {
}
$st = "<p><select id='id_student' name='lastname' size='1' onchange=\"this.form.submit();\">;
                <option value='vse'>Выберите студента</option>";
                $query = mysql_query("SELECT * FROM Students
WHERE id_groups='" . addslashes($_POST['nazv_groups']) . "' ORDER BY id_student");
                $result = mysql_fetch_array($query);
                do
                {
                       $st .= "<option value='".$result['id_student']."'>".$result['lastname']."</option>";
                }
                while($result = mysql_fetch_array($query));
$st .= "</select>";
echo $st."<br>"."<br>";
}
if (!empty($_POST['nazv_ciklovKomis']) && !empty($_POST['nazv_specialnosti']) && !empty($_POST['nazv_groups'])&& !empty($_POST['lastname'])); {
}


echo '<p><table border = "1">
          <tr>
          <th>Название дисциплины</th>
          <th>Вид контроля</th>
          <th>Оценка</th>
          <th>Дата сдачи</th>
          </tr>';
          $result = mysql_query ("SELECT nazv_discipline, vid_kontrolya, otsenka, date_sdachi
FROM Students
WHERE Students.id_student= '" . addslashes($_POST['lastname']) . "'
",$db);

while ($myrow = mysql_fetch_array ($result)){
    $nazv_discipline = $myrow["nazv_discipline"];
    $vid_kontrolya = $myrow["vid_kontrolya"];
    $otsenka = $myrow["otsenka"];
    $date_sdachi = $myrow["date_sdachi"];
    echo "<tr>";
    echo "<td>$nazv_discipline</td>";
    echo "<td>$vid_kontrolya</td>";
    echo "<td>$otsenka</td>";
    echo "<td>$date_sdachi</td>";
    echo "</tr>";
}

if (!empty($_POST['nazv_ciklovKomis']) && !empty($_POST['nazv_specialnosti']) && !empty($_POST['nazv_groups'])&& !empty($_POST['lastname']) && !empty($_POST['nazv_discipline'])); {
}
mysql_close($db);
echo '</table>';
echo "</form>";
?>

</body>
</html>

93

Re: Выпадающий список

По примеру первого списка проще всего сделать так:

$ck = "<p><select id='id_ciklovKomis' name='nazv_ciklovKomis' size='1' onchange=\"this.form.submit();\">;
        <option value='vse'>Выберите цикловую комисию</option>";
          $query = mysql_query("SELECT * FROM CiklovKomis ORDER BY id_ciklovKomis");
              $result = mysql_fetch_array($query);
                do
                {
                    $ck .= "<option value='".$result['id_ciklovKomis']."'";
                    if (!empty($_POST['nazv_ciklovKomis']) && $_POST['nazv_ciklovKomis'] == $result['nazv_ciklovKomis']) {
                        $ck .= ' selected="selected"';
                    }
                    $ck .= ">".$result['nazv_ciklovKomis']."</option>";
                }
               while($result = mysql_fetch_array($query));
$ck.= "</select>";

Re: Выпадающий список

Всеравно после выбора параметра значение не остается в списке,   дамп базы, 


-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Мар 09 2012 г., 18:15
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
--
-- БД: `vibor`
--

-- --------------------------------------------------------

--
-- Структура таблицы `CiklovKomis`
--

CREATE TABLE `CiklovKomis` (
  `id_ciklovKomis` int(255) NOT NULL auto_increment,
  `nazv_ciklovKomis` varchar(255) NOT NULL,
  PRIMARY KEY  (`id_ciklovKomis`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;

--
-- Дамп данных таблицы `CiklovKomis`
--

INSERT INTO `CiklovKomis` VALUES (1, 'Первая');
INSERT INTO `CiklovKomis` VALUES (2, 'Вторая');
INSERT INTO `CiklovKomis` VALUES (3, 'третья');

-- --------------------------------------------------------

--
-- Структура таблицы `Groups`
--

CREATE TABLE `Groups` (
  `id_groups` int(255) NOT NULL auto_increment,
  `nazv_groups` varchar(255) NOT NULL,
  `id_specialnost` varchar(255) NOT NULL,
  `kurs` varchar(255) NOT NULL,
  PRIMARY KEY  (`id_groups`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;

--
-- Дамп данных таблицы `Groups`
--

INSERT INTO `Groups` VALUES (1, 'група 1', '1', '3');
INSERT INTO `Groups` VALUES (2, 'група2', '1', '4');
INSERT INTO `Groups` VALUES (3, 'група3', '2', '');

-- --------------------------------------------------------

--
-- Структура таблицы `Specialnost`
--

CREATE TABLE `Specialnost` (
  `id_specialnost` int(255) NOT NULL auto_increment,
  `nazv_specialnosti` varchar(255) NOT NULL,
  `id_ciklovKomis` varchar(255) default NULL,
  PRIMARY KEY  (`id_specialnost`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;

--
-- Дамп данных таблицы `Specialnost`
--

INSERT INTO `Specialnost` VALUES (1, 'по первой1', '1');
INSERT INTO `Specialnost` VALUES (2, 'по первой2', '1');
INSERT INTO `Specialnost` VALUES (3, 'по второй1', '2');
INSERT INTO `Specialnost` VALUES (4, 'по второй2', '2');
INSERT INTO `Specialnost` VALUES (5, 'по третьей', '3');

-- --------------------------------------------------------

--
-- Структура таблицы `Students`
--

CREATE TABLE `Students` (
  `id_student` int(255) NOT NULL auto_increment,
  `nazv_discipline` varchar(255) default NULL,
  `vid_kontrolya` varchar(255) default NULL,
  `otsenka` varchar(255) NOT NULL,
  `date_sdachi` varchar(255) NOT NULL,
  `id_groups` varchar(255) NOT NULL,
  `nazv_groups` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  PRIMARY KEY  (`id_student`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;

--
-- Дамп данных таблицы `Students`
--

INSERT INTO `Students` VALUES (1, 'мах1', 'екзамен', '3', '35', '1', 'sfdf', 'иванов');
INSERT INTO `Students` VALUES (2, 'мах2', 'зачет', '4', '4545', '1', 'dfg', 'петров');
INSERT INTO `Students` VALUES (3, NULL, '', '', '', '2', '', 'васютин');

-- --------------------------------------------------------

--
-- Структура таблицы `table`
--

CREATE TABLE `table` (
  `id` int(255) NOT NULL auto_increment,
  `vivod` varchar(255) NOT NULL,
  `id_vivod` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `table`
--

INSERT INTO `table` VALUES (1, 'вывод1', '1');
INSERT INTO `table` VALUES (2, 'вывод2', '2');

95

Re: Выпадающий список

Так попробуйте.

$ck = "<p><select id='id_ciklovKomis' name='nazv_ciklovKomis' size='1' onchange=\"this.form.submit();\">;
        <option value='vse'>Выберите цикловую комисию</option>";
          $query = mysql_query("SELECT * FROM CiklovKomis ORDER BY id_ciklovKomis");
              $result = mysql_fetch_array($query);
                do
                {
                    $ck .= "<option value='".$result['id_ciklovKomis']."'";
                    if (!empty($_POST['nazv_ciklovKomis']) && $_POST['nazv_ciklovKomis'] == $result['id_ciklovKomis']) {
                        $ck .= ' selected="selected"';
                    }
                    $ck .= ">".$result['nazv_ciklovKomis']."</option>";
                }
               while($result = mysql_fetch_array($query));
$ck.= "</select>";

Re: Выпадающий список

большое спасибо первій работает, подскажите как второй переделать там немного по другому формируется, а 3 и 4 думаю по аналогии с 2 переделаю

Re: Выпадающий список

все нашел изменил, работает выбраный параметр остается в списке после выбора. Вам большое

Re: Выпадающий список

подскажите пожалуйста как правильно написать код. У меня на сайте есть блок с навигацией там просто ссылки которые подгружают страницы в которых такойже блок с навигацией только меняется блок с выводом информации в середине страницы. А вот если подцепить ети списки то нужно чтоб информация выводилась внутри того блока а то что в нем ранше было выгружалось. как такое правильнее сделать?

99

Re: Выпадающий список

Не уверен, что смог понять.

Если делать сквозное меню без перезагрузки страницы, то потребуется подгрузка данных по Ajax. Смотрите как реализованы вкладки здесь: http://jqueryui.com/demos/tabs/#ajax

Как вариант - фреймы. Смотрите здесь: http://htmlbook.ru/html/frame

100

Re: Выпадающий список

Нет с фреймами точно не пойдет.   Нужно сделать чтото на подобие того меню на аjax.   У меня есть блок в котором в цыкле формируются ссылки, <?php
$result2 = mysql_query("select * from brands",$db);
if(!$result2)
{
echo "<p>Запрос на вывод данных из базы не прошол. Напишите об этом
администратору: mironchuk.pavel@mail.ru<br><strong>Код ошибки: </strong>></p>";
exit (mysql_error());
}
if (mysql_num_rows($result2) > 0)
{
$row2 = mysql_fetch_array($result2);
}
else
{
echo "<p>Информация по запросу не может быть извлеченв, в таблице нет записей.</p>";
exit();
}
do
{
printf
("<p><a href='view_br.php?

br

=%s'>%s</a></p>",$row2["id"],$row2["name"]);
}
while ($row2 = mysql_fetch_array($result2));
?>

по параметру

br

ссылка подгружает страницу которая с этим параметром загружает данные из базы, сами же данные выводятся на странице допустим по центру <body>
<?php include("blocks/bd.php");
if (isset($_GET['br'])) {$br = $_GET['br'];}
if (!isset($br)) {$br = 1;}
$result = mysql_query("select * from brands where id='$br'",$db);
if (!$result)
{
echo"<p>Запрос на выборку данных из базы не прошол</p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);
}
else
{
echo "<p>Информация по запросу не прошла в таблице нет данных</p>";
exit();
}
?>
<table width="100%" class="main_border">
  <tr>
    <td colspan="2" align="center" valign="top"><?php include ("blocks/heder.php");?></td>
  </tr>
  <tr>
    <td colspan="2" align="left"><?php include ("blocks/podbor.php");?></td>
  </tr>
  <tr>
    <td align="left" valign="top"><?php include ("blocks/left.php");?></td>
    <td align="left" valign="top">
    <?php echo $row["text"];?>
        <?php
$result = mysql_query("select * from model where br='$br'",$db);
if(!$result)
{
echo "<p>Запрос на вывод данных из базы не прошол. Напишите об этом
администратору: mironchuk.pavel@mail.ru<br><strong>Код ошибки: </strong>></p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);
do
{
printf("<table width='400' border='1'>
  <tr>
    <td colspan='9'>%s</td>
  </tr>
  <tr>
    <td colspan='2'>фото</td>
    <td colspan='7' rowspan='2'>текст</td>
  </tr>
  <tr>
    <td>сезон</td>
    <td>тип</td>
  </tr>
  <tr>
    <td colspan='2'>ширина</td>
    <td>профиль</td>
    <td>диаметр</td>
    <td>инд.нагр</td>
    <td>инд.скор</td>
    <td>количество</td>
    <td>цена </td>
    <td><a href='view_rz.php?rz=%s'>подробнее</a></td>
  </tr>
</table><br>",$row["model"],$row["id"]);
}
while ($row = mysql_fetch_array($result));


}
else
{
echo "<p>Информация по запросу не может быть извлеченв, в таблице нет записей.</p>";
exit();
}

?>
А вот если вывести данные из зависимых списков, то нужно чтоб блок с сылками оствался а те данные что вывелись из него исчезли, я делаю это поосто перезагрузкой страницы и подгрузкой новой, возможно ли это упростить без перезагрузки страницы?