修改PHP文件使用jQuery $ .post

时间:2015-04-07 05:54:49

标签: php jquery html mysql

我正在尝试使用jQuery将html中选定的值添加到PHP文件中。我有2个php文件,chainmenu.php和function.php。 function.php包含2个函数,用于从我的数据库中获取一些数据。 chainmenu.php用于显示function.php中函数的结果。它需要一个变量,这是我的html中选定选项的值。我能够检索该值,但我的问题是我的$ .post函数不起作用。我不知道错误在哪里,是在我的chainmenu.php或我的function.php中。

这是我的代码

jQuery CODE

  <script type="text/javascript">
        $(document).ready(function() {
            $("select#trafo").attr("disabled","disabled");
            $("select#gi").change(function(){
                $("select#trafo").attr("disabled","disabled");
                $("select#trafo").html("<option>wait...</option>");
                var id = $("select#gi option:selected").attr('value');
                $("select#trafo").html("<Option>"+id+"</Option>");
                $.post("chainmenu.php", {id:id}, function(data){
                    $("select#trafo").removeAttr("disabled");
                    $("select#trafo").html(data);
                });
            });
        });
        </script>

Function.php

 <?php class SelectList
    {

//$this->conn is working fine here

    public function ShowGI()
            {
                $sql = "SELECT * FROM gi";
                $res = mysqli_query($this->conn,$sql);  
                if(mysqli_num_rows($res)>=1){
                    $category = '<option value="0">Pilih GI</option>';
                    while($row = mysqli_fetch_array($res))
                    {
                        $category .= '<option value="' . $row['idgi'] . '">' . $row['namegi'] . '</option>';
                    }
                }
                return $category;
            }

            public function ShowIt()
            {
                $sql = "SELECT * FROM It WHERE idgi=$_POST[id]";
                $res = mysql_query($sql,$this->conn);
                $type = '<option value="0">Choose/option>';
                while($row = mysql_fetch_array($res))
                {
                    $type .= '<option value="' . $row['idIt'] . '">' . $row['name'] . '</option>';
                }
                return $type;
            }
               }

    $opt = new SelectList();
    ?>

chainmenu.php

<?php include "/opsi.class.php";
echo $opt->ShowIt(); ?>

HTML代码

<head>
<!-- the script here -->
</head>
<body>
<select id=gi>
<option value="0"> Select </option>
</select>
<select id=It>
<!-- chainmenu.php result should be here -->
</select>

</body>

这个解释有点乱,但我希望有人能帮助我并给我一些好的建议。

谢谢。

2 个答案:

答案 0 :(得分:0)

在chainmenu.php中尝试这样做

<?php include "/opsi.class.php";
echo $opt->ShowIt($_POST['id']); ?>
在function.php中的

替换如下的ShowIt()方法,

public function ShowIt($id)
            {
                $sql = "SELECT * FROM It WHERE idgi=$id";
                $res = mysql_query($sql,$this->conn);
                $type = '<option value="0">Choose/option>';
                while($row = mysql_fetch_array($res))
                {
                    $type .= '<option value="' . $row['idIt'] . '">' . $row['name'] . '</option>';
                }
                return $type;
            }

答案 1 :(得分:0)

ShowIt()函数中存在一些拼写错误,例如$type = '<option value="0">Choose/option>';标记未正确关闭。 在jquery代码中,您正在检索值并将html添加到具有id trafo的select标记。而在html代码中,select的id是It。

<select id=It>
 <!-- chainmenu.php result should be here -->
</select>