我正在尝试根据第一个下拉菜单的选择填充一个下拉菜单。第一个下拉菜单是数据库中的表列表,第二个下拉菜单将从该表中的提供程序填充。
我在使用ajax脚本时遇到问题。我不知道如何测试 AJAX 返回,我对这一切相当陌生。但是截至目前,当我从第一个下拉菜单中选择表时,没有任何反应(第二个下拉菜单应该填充)。我相信我的问题在于从 ajax 检索结果,但这只是一个猜测。
任何帮助将不胜感激。
我的Javascript将选择信息从我的专家表发送到ajax文件...
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("flip").click(function(){
jQuery("#panel").slideToggle("slow");
});
//provider drop down menu
jQuery(".wrap").on('change','#specialist', function() {
var querystr = 'specialist='+jQuery('#specialist :selected').val();
jQuery.post("ajax.php", querystr, function(data) {
if(data.errorcode ==0){
jQuery('#providercbo').html(data.chtml)
}else{
jQuery('#providercbo').html(data.chtml)
}
}, "json");
});
});
</script>
我的阿贾克斯文件
$specialist = isset($_POST['specialist']) ? $_POST['specialist'] : 0;
if ($specialist <> 0) {
$errorcode = 0;
$strmsg = "";
$sql="SELECT * from $specialist ORDER BY provider";
$result=mysql_query($sql);
$cont=mysql_num_rows($result);
if(mysql_num_rows($result)){
$chtml = '<select name="provider" id="provider"><option value="0">--Select Provider--</option>';
while($row = mysql_fetch_array($result)){
$chtml .= '<option value="'.$row['id'].'">'.$row['provider'].'</option>';
}
$chtml .= '</select>';
echo json_encode(array("errorcode"=>$errorcode,"chtml"=>$chtml));
}else{
$errorcode = 1;
$strmsg = '<font style="color:#F00;">No Provider available</font>';
echo json_encode(array("errorcode"=>$errorcode,"chtml"=>$strmsg));
}
}
该目录
<table id="dynamictable" cellpadding="5" cellspacing="5" border="3" align="center">
<tr><td>
<div class="wrap" align="left">
<h3><strong>1.</strong>Specialist</h3>
<select id="specialist" name="specialist" required>
<option value="">--Select Specialist--</option>
<option value="addiction_specialist">Addiction Specialist</option>
</select
</div></td>
<td><h3 align="left"><strong>2.</strong>Provider</h3>
<div class="wrap" id="providercbo" align="left"></div></td>
<table>
在 PHP 端设置调试(XDebug 在大多数情况下都运行良好)。 此外,对于任何 AJAX/Web 请求功能,我运行 fiddler (http://www.telerik.com/fiddler) 来查看从 Web 服务器返回给客户端的内容(它将为您提供 Web 请求的完整视图)。
希望这有帮助!