Я работаю над этим 4-мя цепным выпадающим выбором, и все работает хорошо, вот как это работает.Прикованный выбор выпадающего маленького недоразумения
Семестр: Вы выбираете семестрового
Тема: после выбора семестра, вы выбрать тему
раздел: после выбора предмета, вы выбираете, какой раздел
профессор: после выбора раздела , вы выбираете, какой профессор в зависимости от выбранного раздела.
Проблема в том, что, когда дело доходит до профессора, оно будет получать всех профессоров из базы данных, а не одного профессора, назначенного этому классу и разделу. Например я это сделать:
семестр: осень-2015
Тема: ИБК 330
раздел: 1
профессор: должен показать Джейсону, но он показывает все преподаватели, которые учат раздел числа 1 (проблема в том, что нужно проверить профессора, который учит выбранному предмету и выбранному разделу, а не только раздел, так как все преподаватели обучают разделу номер 1)
Надеюсь, у вас возникла эта идея.
Вот мой код ниже:
func.php
<html>
<?php
//**************************************
// Page load dropdown results //
//**************************************
function getTierOne()
{
$result = mysql_query("SELECT DISTINCT semester FROM three_drops")
or die(mysql_error());
while($tier = mysql_fetch_array($result))
{
echo '<option value="'.$tier['semester'].'">'.$tier['semester'].'</option>';
}
}
//**************************************
// First selection results //
//**************************************
if($_GET['func'] == "drop_1" && isset($_GET['func'])) {
drop_1($_GET['drop_var']);
}
function drop_1($drop_var)
{
include_once('db.php');
$result = mysql_query("SELECT DISTINCT subject FROM three_drops WHERE semester='$drop_var'")
or die(mysql_error());
?>
<br /><br /> <label for="subject" accesskey="s">Subject</label>
<?php
echo '<select name="drop_2" id="drop_2">
<option value=" " disabled="disabled" selected="selected">Choose one</option>';
while($drop_2 = mysql_fetch_array($result))
{
echo '<option value="'.$drop_2['subject'].'">'.$drop_2['subject'].'</option>';
}
echo '</select>';
echo "<script type=\"text/javascript\">
$('#wait_2').hide();
$('#drop_2').change(function(){
$('#wait_2').show();
$('#result_2').hide();
$.get(\"func.php\", {
func: \"drop_2\",
drop_var: $('#drop_2').val()
}, function(response){
$('#result_2').fadeOut();
setTimeout(\"finishAjax_section('result_2', '\"+escape(response)+\"')\", 400);
});
return false;
});
</script>";
}
//**************************************
// Second selection results //
//**************************************
if($_GET['func'] == "drop_2" && isset($_GET['func'])) {
drop_2($_GET['drop_var']);
}
function drop_2($drop_var)
{
include_once('db.php');
$result = mysql_query("SELECT DISTINCT section FROM three_drops WHERE subject='$drop_var'")
or die(mysql_error());
?>
<br /><br /> <label for="section" accesskey="s">Section</label>
<?php
echo '<select name="drop_3" id="drop_3">
<option value=" " disabled="disabled" selected="selected">Choose one</option>';
while($drop_3 = mysql_fetch_array($result))
{
echo '<option value="'.$drop_3['section'].'">'.$drop_3['section'].'</option>';
}
echo '</select>';
echo "<script type=\"text/javascript\">
$('#wait_3').hide();
$('#drop_3').change(function(){
$('#wait_3').show();
$('#result_3').hide();
$.get(\"func.php\", {
func: \"drop_3\",
drop_var: $('#drop_3').val()
}, function(response){
$('#result_3').fadeOut();
setTimeout(\"finishAjax_professor('result_3', '\"+escape(response)+\"')\", 400);
});
return false;
});
</script>";
}
//**************************************
// Third selection results //
//**************************************
if($_GET['func'] == "drop_3" && isset($_GET['func'])) {
drop_3($_GET['drop_var']);
}
function drop_3($drop_var)
{
include_once('db.php');
$result = mysql_query("SELECT DISTINCT professor FROM three_drops WHERE section='$drop_var'")
or die(mysql_error());
?>
<br /><br /> <label for="professor" accesskey="s">Professor</label>
<?php
echo '<select name="drop_4" id="drop_4">
<option value=" " disabled="disabled" selected="selected">Choose one</option>';
while($drop_4 = mysql_fetch_array($result))
{
echo '<option value="'.$drop_4['professor'].'">'.$drop_4['professor'].'</option>';
}
echo '</select> ';
}
?>
</html>
index.php
<?php
include('db.php');
include('func.php');
?>
<div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#wait_1').hide();
$('#drop_1').change(function(){
$('#wait_1').show();
$('#result_1').hide();
$.get("func.php", {
func: "drop_1",
drop_var: $('#drop_1').val()
}, function(response){
$('#result_1').fadeOut();
setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
});
return false;
});
});
function finishAjax(id, response) {
$('#wait_1').hide();
$('#'+id).html(unescape(response));
$('#'+id).fadeIn();
}
function finishAjax_section(id, response) {
$('#wait_2').hide();
$('#'+id).html(unescape(response));
$('#'+id).fadeIn();
}
function finishAjax_professor(id, response) {
$('#wait_3').hide();
$('#'+id).html(unescape(response));
$('#'+id).fadeIn();
}
</script>
<label for="semester" accesskey="s">Semester</label>
<select name="drop_1" id="drop_1">
<option value="" selected="selected" disabled="disabled">Select a Category</option>
<?php getTierOne(); ?>
</select>
<span id="wait_1" style="display: none;">
<img alt="Please Wait" src="ajax-loader.gif"/>
</span>
<span id="result_1" style="display: none;"></span>
<span id="wait_2" style="display: none;">
<img alt="Please Wait" src="ajax-loader.gif"/>
</span>
<span id="result_2" style="display: none;"></span>
<span id="wait_3" style="display: none;">
<img alt="Please Wait" src="ajax-loader.gif"/>
</span>
<span id="result_3" style="display: none;"></span>
</div>
базы данных, как это:
semester | subject | section | professor
Fall-2015 | ELEG-330 | 1 | Jason
Fall-2015 | ELEG-330 | 2 | Michael
Fall-2015 | ELEG-210 | 1 | kyle
Например выше, если семестр был осенью 201 5, сюжет был eleg-330 и раздел 1, профессор показал бы, что и Джейсон, и Кайл неверны.
Заранее спасибо.
у вас есть '... WHERE section = '$ drop_var' AND subject = '$ resulta'" ', но вы не определяете' $ resulta' в 'function drop_3 ($ drop_var)'. – Sean
Я не знаю, что определить, я сделал это, чтобы на самом деле начать что-то, но я не знаю, представьте, что его нет, – Sam
@Sean удалил его, так как это был мусор, я просто положил – Sam