AJAX RETURN 关于 php/mysql 动态下拉菜单的帮助
AJAX RETURN help on php/mysql dynamic drop down menu
我正在尝试根据第一个下拉菜单的 selection 填充一个下拉菜单。第一个下拉菜单是我数据库中 table 的列表,第二个下拉菜单将从 table.
中的提供程序中填充
我在使用 ajax 脚本时遇到问题。我不知道如何测试 ajax returns,我对这一切还很陌生。但是截至目前,当我从第一个下拉菜单中 select table 时,没有任何反应(应该填充第二个下拉菜单)。我相信我的问题在于从 ajax 检索结果,但这只是一个猜测。
如有任何帮助,我们将不胜感激。
我的 Javascript 将我的专家 table 的选择信息发送到 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>
我的ajax文件
$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));
}
}
HTML
<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 视图请求)。
希望对您有所帮助!
我正在尝试根据第一个下拉菜单的 selection 填充一个下拉菜单。第一个下拉菜单是我数据库中 table 的列表,第二个下拉菜单将从 table.
中的提供程序中填充我在使用 ajax 脚本时遇到问题。我不知道如何测试 ajax returns,我对这一切还很陌生。但是截至目前,当我从第一个下拉菜单中 select table 时,没有任何反应(应该填充第二个下拉菜单)。我相信我的问题在于从 ajax 检索结果,但这只是一个猜测。
如有任何帮助,我们将不胜感激。
我的 Javascript 将我的专家 table 的选择信息发送到 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>
我的ajax文件
$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));
}
}
HTML
<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 视图请求)。
希望对您有所帮助!