Показать сообщение отдельно
  #1 (permalink)  
Старый 23.05.2017, 14:32
Новичок на форуме
Отправить личное сообщение для Bearon Посмотреть профиль Найти все сообщения от Bearon
 
Регистрация: 23.05.2017
Сообщений: 5

Создать(показать ранее скрытую) форму после нажатия на кнопку
Добрый день, помогите пожалуйста решить такую задачу.
У меня есть форма с селекторами для выбора критериев(предмет, группа, год и семестр):
index.php
//Если появляется POST со значением селектора -  разблокировать следующий связанный и отправить значения сл. селектора
<?php
 if($_POST['disciplinesval']){
      $return = selectGroup();
      exit($return);
    }
  if($_POST['groupval'] && $_POST['disciplinesval2']){
      $return = selectYear();
      exit($return);
    }
//по аналогии год, семестр.


$disciplines = selectDisciplines($about_lector['id_lect']); //Массив со значениями Дисциплин из функции (глобальный параметр для расчет - id лектора)
?>

<form name="selector" action="" method="POST">
   <div id="divdisciplines">
     <select name="disciplines" id="disciplines">
       <option value="0">Выберите дисциплину</option>
       <?php foreach($disciplines as $discipline){
       ?>
       <option value="<?php echo $discipline['id_disc'];?>"><?php echo $discipline['name']; ?></option>
       <?php } ?>
     </select>     
   </div>

   <div id="divgroup">
     <select name="group" id="group" disabled></select>
   </div>

   <div id="divyear">
     <select name="year" id="year" disabled></select>
   </div>

   <div id="divsemestr">
     <select name="semestr" id="semestr" disabled></select>
   </div>

   <input type="submit" name="submitSelector" value="Отправить">
 </form>

данные в которую загружаются таким методом:
selector.php
function selectDisciplines ($lector_ID) {
	$res = R::getAll(" SELECT * FROM disciplines WHERE lecturer='$lector_ID' ");// Запрос на список дисциплин для текущего преподавателя
	$disciplines = array();
	foreach($res as $item){
		$disciplines[] = $item;
   }
   return $disciplines;
}

function selectGroup(){
	$disciplinesval = (int)$_POST['disciplinesval'];
	// $res = array_unique(R::getAll(" SELECT * FROM student_groups, students, performance WHERE student_groups.id_group=students.id_group AND students.id_student=performance.id_stud AND performance.id_disc='$disciplinesval' "));
	$res = R::getAll(" SELECT DISTINCT g.id_group, g.group_name FROM student_groups g
JOIN  students st ON st.id_group=g.id_group
JOIN  performance per ON g.id_group=st.id_group AND st.id_student=per.id_stud AND per.id_disc='$disciplinesval'
 ");
	$return = "<option value='0'>Выберите группу</option>";
	foreach($res as $item){
		$return .="<option value='{$item['id_group']}'>{$item['group_name']}</option>";
	}
	return $return;
}

//По аналогии selectGroup() подгружаются год, семестр.


common.js
$(document).ready(function(){
    $("#disciplines").change(function() {
        var disciplinesval = parseInt($("#disciplines").val() ); //id таблицы disciplines выбранного селектора дисциплин
        selectGroup(disciplinesval);//Передаем значение в функцию selectGroup
    });
});

function selectGroup(disciplinesval) {
    var group = $("#group");

    // Очистка зависимого списка(группы) при смене дисциплины
    clear(group);
    clear($("#year"));
    clear($("#semestr"));
    //Выбрана ли дисциплина (0 это дефолтное значение)
    if (disciplinesval > 0){
        group.attr("disabled", false); //Делаем селектор активным
        //Передаем значение номера дисциплины (disciplinesval) в глобальный массив POST
        group.load(
            "index.php",
            {disciplinesval: disciplinesval}
        );
    }
}
//По аналогии год, семестр.

function clear(val) {
    val.empty();
    val.attr("disabled", true);
}


Проблема заключается в том - как после выбора в каждом из селекторов, после нажатия на клавишу <input type="submit" name="submitSelector" value="Отправить"> загружалась(или становилась видна) другая форма с таблицей студентов, данные в которой загрузились бы в зависимости от значений в $_POST['submitSelector']?
Форма должна получиться примерно такая:
<form name="stud_edit" id="stud_edit" action="" method="POST" ">
<div id="divstud_edit_head" name="divstud_edit_head">
  <tr>
    <td><input type = "text" name = "numb0" value="№ записи" readonly></td>
    <td><input type = "text" name = "discipline0" value="Предмет" readonly></td>
    <td><input type = "text" name = "group0" value="Группа" readonly></td>
    <td><input type = "text" name = "student0" value="Студент" readonly></td>
    <td><input type = "text" name = "point0" value="Баллы" readonly></td><br/>
</tr>
</div>
<div name="divstud_edit" id="divstud_edit">
<?php
//Значения из $_POST['submitSelector']
  $select_data = $_POST['submitSelector'];

  $disc = (int)$select_data['disciplines'];
  $semestr = (int)$select_data['semestr'];
  $year = (int)$select_data['year'];
  $group = (int)$select_data['group'];

 $row1 = R::getAssoc(" SELECT DISTINCT per.id, per.id_disc, per.id_stud, per.points, per.semester, per.st_year FROM performance per
 JOIN lecturers lect
 JOIN disciplines disc
 JOIN students stud ON per.id_disc = '$disc' AND per.semester = '$semestr' AND per.st_year='$year' AND per.id_stud=stud.id_student AND stud.id_group='$group' "); //проверяем соотв. предметов у лектора, привязываем id лектора с id из логина, по текущему семестру
$count = 1;
 foreach( $row1 as $item ){
    $id_record = R::getRow(" SELECT * FROM performance WHERE id_disc = '".$item['id_disc']."' AND id_stud = '".$item['id_stud']."' AND semester='".$item['semester']."' AND st_year='".$item['st_year']."'  "); //узнаем номер записи
    $disc = R::getRow(" SELECT * FROM disciplines WHERE id_disc = '".$item['id_disc']."' "); 
    $student = R::getRow(" SELECT * FROM students WHERE id_student = '".$item['id_stud']."' "); 
    $group = R::getRow(" SELECT * FROM student_groups WHERE id_group='".$student['id_group']."' ");
?> 
 <tr>
   <td><input type = "text" name = "numb<?php echo $count;?>" value ="<?php echo $id_record['id'];?>" readonly></td>
   <td><input type = "text" name = "numb<?php echo $count;?>" value ="<?php echo $disc['name'];?>" readonly></td>
   <td><input type = "text" name = "group<?php echo $count;?>" value ="<?php echo $group['group_name'];?>" readonly></td>
   <td><input type = "text" name = "student<?php echo $count;?>" value ="<?php echo $student['surname'];?> <?php echo $student['name'];?> <?php echo $student['patronymic'];?>" readonly></td>
   <td><input type = "text" name = "point<?php echo $count;?>" value ="<?php echo $item['points'];?>"></td>
   </tr>
<?php
  $count = $count + 1;
	}
?>
</div>

<input type="submit" name="update_data" id="update_data" value="Обновить">
</form>

Последний раз редактировалось Bearon, 23.05.2017 в 15:53. Причина: опечатки в форме
Ответить с цитированием