Php 从MySql填充选项选择菜单
我正在尝试根据另一个菜单中的选择填充第二个选项选择菜单。问题是,我无法让jQuery执行它。 这是我的密码Php 从MySql填充选项选择菜单,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我正在尝试根据另一个菜单中的选择填充第二个选项选择菜单。问题是,我无法让jQuery执行它。 这是我的密码 <head> <script type="text/javascript"> $(document).ready(function() { $("#add_subject").change(function() { var id=$(this).val(); var dataString = 'id='+ id; $.ajax ({
<head>
<script type="text/javascript">
$(document).ready(function()
{
$("#add_subject").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "inc.add.content.populate.php",
data: dataString,
cache: false,
success: function(html)
{
$("#add_content").html(html);
}
});
});
});
</script>
</head>
<div class="grid_10">
<div class="box round first">
<h2>Title</h2>
<div class="block">
<form method="post">
<table class="form">
<tr>
<td>
<select id="add_subject" name="add_subject">
<option value="1">first option</option>
</select>
<select id="add_content" name="add_content">
</select>
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
还有我的inc.add.content.populate.php文件
<?php
require_once(BASEDIR.'includes'.DIRECTORY_SEPARATOR.'inc.functions.php');
if($_POST['id'])
{
$id=$_POST['id'];
global $mysqli;
if($query = $mysqli->prepare("SELECT naslov,vsebine_id FROM table_vsebine WHERE predmet_id=?")){
$query->bind_param('i',$id);
if($query->execute()){
$query->bind_result($naslov,$vsebine_id);
$query->store_result();
while($row = $query->fetch()){
echo '<option value="'.$vsebine_id.'">'.$naslov.'</option>';
}
}
}
}
?>
您直接运行inc.add.content.populate.php文件,并且BASEDIR是在index.php中定义的,因此,在本例中,您的BASEDIR没有在这个脚本中定义,因为index.php没有在这个ajax调用中执行
如果您在一个单独的文件(比如constants.php)中定义所有常量,并且只需在index.php和inc.add.content.populate.php中使用/包含它,那么就可以很容易地完成,如
require_once('path/to/file/constants.php');
require_once(BASEDIR.'includes'.DIRECTORY_SEPARATOR.'inc.functions.php');
// ...
您正在尝试访问应用程序中其他地方定义的常量 PHP是一种无状态语言,这意味着每个连接都会得到不同的处理
您可能需要在使用它们的文件中定义BASEDIR和DIRECTOR\u分隔符。或者,如果您在多个文件中使用它们,您可以将所有定义放在一个文件中,并在需要时包含它。Javascript控制台中是否有错误?或者PHP日志中出现错误?没有任何错误:如果我将$add_content.html放在'bbb'中,javascript函数将工作并替换选项;在dataString变量之后,我认为.ajax partif you console.loghtml在success方法中有问题,您得到了什么?require_once语句(实际上是BASEDIR)似乎有问题。BASEDIR是在main index.php文件中定义的,为什么它不能在这个文件中被识别?因为在这种情况下,没有任何东西调用您的索引文件来实际定义它。PHP是一种无状态语言。因此,除非您在活动连接上定义了某些内容,否则它将不会被定义。