PHP降低变化

时间:2014-10-15 06:28:47

标签: php html mysql drop-down-menu onchange

我有一个名为课程的下拉列表。当用户选择课程时,我应该向他展示有关提供该课程的老师的信息。因此,在更改时,我需要选择值,并向他显示从SQL查询生成的结果。

这是我的PHP代码:

$sql=  "SELECT id, course_period_id from schedule WHERE STUDENT_ID='$_SESSION[student_id]'";
        $result=mysql_query($sql);


            $options="";

            while ($row=mysql_fetch_array($result)) {

                $id=$row["id"];
                $course_period_id=$row["course_period_id"];
                $course= DBGet(DBQuery("SELECT title FROM course_periods WHERE course_period_id='$course_period_id'"));
                $options.="<OPTION VALUE=\"$course[1]['TITLE']\">".$course[1]['TITLE'].'</option>';
            }

            echo '</TD></TR></TABLE>';

            echo "<SELECT>
                <OPTION VALUE=0>Choose
                 $options
                 </SELECT>";

            echo '</TD></TR></TABLE>';

我想使用“href”,因为我使用以下代码创建了一个php文件“teachers_info.php”:

if(!empty($_GET['Course']))
{

    $sql="SELECT teacher_id FROM course_periods where title= '$course'";

    $teacher_id=  DBGet(DBQuery($sql));

    $result= DBGet(DBQyery(" SELECT first_name, last_name, phone, email FROM staff WHERE staff_id = '$teacher_id[1]['teacher_id']'"));


    echo "<table border='1'>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Phone</th>
    <th>E-mail</th>
    </tr>";

    echo "<tr>";
    echo "<td>" . $result[1]['first_name'] . "</td>";
    echo "<td>" . $result[1]['last_name'] . "</td>";
    echo "<td>" . $result[1]['phone'] . "</td>";
    echo "<td>" . $result[1]['email'] . "</td>";
    echo "</tr>";

     echo "</table>";
}

我该怎么做?

谢谢:)

3 个答案:

答案 0 :(得分:2)

好的,这是一个糟糕的方法,原因有很多:

  1. 这应该使用ajax
  2. 完成
  3. 不要将$ _SESSION用于此
  4. 我会帮助你。你需要的第一件事是jquery。你可以在这里找到它:http://jquery.com

    接下来看一下这张照片,了解ajax的工作原理:enter image description here

    简而言之,ajax用于调用服务器并使用响应更新页面而无需重新加载。在您的情况下,您将拨打服务器电话,发送课程并收到结果。

    一旦你设置了jquery,就必须写下这个:

    $(function(){
    
    $("select").on("change", function(){
    
    var value = $(this).value(); //get the selected id
    $.get("requesturl.php", {course: value}, function(){
     // do something with the response
    }, "json");
    
    })
    
    })
    

    requesturl.php文件如下所示:

    $course = $_GET["course"]
    if($course){
      //execute Database query and store it in $result
      echo json_encode($result);
    }
    

答案 1 :(得分:1)

好吧,如果你想让PHP获得你想发布的东西。您可以添加提交按钮或:

echo "<select name=\"course\" id=\"course\" onchange=\"this.form.submit()\">
        <OPTION VALUE=0>Choose
         $options
         </SELECT>";

然后你可以利用if(!empty($ _ GET [&#39; Course&#39;])){ 因为$ _GET []需要提交表单。

答案 2 :(得分:1)

您可以修改此代码。

<强> myform.php

<script type="text/javascript">
    $(document).ready(function(){
//Below line will get value of Category and store in id
$("#Category").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "GET",
url: "Ajax_SubCategory.php",
data: dataString,
cache: false,
success: function(html)
{
//This will get values from Ajax_SubCategory.php and show in Subcategory Select option
$("#SubCategory").html(html);
} 
});
});                         
    });

</script> 
<form>   
<?php 

mysql_connect("localhost","root","") or die("error connect");
mysql_select_db("test") or die(" error database");
echo "<select name='Category' id='Category'>";
echo "<option value='' disabled='' selected='' >--Select Category--</option>"; 
$q6=mysql_query("select DISTINCT Category from category");
while($r6=mysql_fetch_array($q6))
{
echo "<option value='$r6[0]' >$r6[0]</option>"; 
}
echo "</select>";
echo "<select name='SubCategory' id='SubCategory'>";
echo "<option value='' disabled='' selected='' >--Select Sub Category--</option>";  
echo "</select>";
?>
</form>

<强> Ajax_SubCategory.php

<?php
mysql_connect("localhost","root","") or die("error connect");
mysql_select_db("test") or die("error database");

if($_GET['id'])
{
$id=$_GET['id'];
$sql=mysql_query("select SubCategory from category where Category='$id'");
    while($row=mysql_fetch_array($sql))
    {
    $data=$row['SubCategory'];
    echo '<option value="'.$data.'">'.$data.'</option>';
    //echo "<input type='checkbox'  value='".$data."' >".$data.;
    }
}
?>