我正在尝试使用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>
这个解释有点乱,但我希望有人能帮助我并给我一些好的建议。
谢谢。
答案 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>