我知道我想要什么,但需要协助如何完成它。下面是场景:我有两个下降。第一个下拉列表从数据库中获取,工作正常。在第一个下拉列表的更改事件中,系统应转到数据库,并将结果提取到下一个下拉列表中。看看到目前为止我做了多少帮助: JQUERY SECTION
<script type="text/javascript" src="includes/scripts/newJquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#locate").change(function(){
var selectedloc = $("#locate option:selected").val();
$.ajax({type: "POST",url:"process-loc.php",data:{loca:selectedloc}}).done(function(data){
var ans=jQuery.parse(data);
//using php-mysql before
var ps = ans.res;
$("#subloc").html(ps);
});
});
});
</script>
前端(HTML)
<tr>
<th>Primary Location:</th>
<?php
$result = mysqli_query($connection,"SELECT * FROM tab_location");?>
<td>
<select name="locate" class="form-control" id="locate">
<option>Select Main Location</option>
<?php while($rw = mysqli_fetch_array($result)){ ?>
<option value="<?php echo $rw['location_name'];?>"><?php echo $rw['location_name'];?></option>
<?php };?>
</select>
</td>
</tr>
<tr>
<th>Sub Location:</th>
<td id="subloc"></td>
</tr>
过程-loc.php
if(isset($_POST["loca"])){
include 'includes/session.php';
include 'includes/db_connection.php';
include 'includes/functions.php';
$main = $_POST["loca"];
$gets = "SELECT * FROM tab_fltlocation WHERE mainloc='".$main."'";
$get = mysqli_query($connection,$gets);
$gt = mysqli_fetch_array($get);
//$nos= $gt['opsNo'];
if(mysqli_num_rows($get)>=0)
{
echo json_encode(array("res"=>$gt));//or do a dropdown using <select name='subloc'><option value=$gt['loc']>$gt['loc']</option></select>
}else{
echo json_encode(array("res"=>"0"));
}
}
?>
这就是我想要在前端页面上显示的内容: $ GT [&#39; LOC&#39;] 我怎样才能做到这一点。
答案 0 :(得分:2)
$query = "
SELECT
tariff_name
FROM tariff_setting";
$result = mysqli_query($this->_connection, $query);
while ($row = mysqli_fetch_assoc($result))
$response[] = $row['tariff_name'];
}
$tarrifList = json_encode($response);
// $ tarrifList是响应并以json编码格式发送并在ajax成功时解码
// Javascript Process
var obj = JSON.parse(resdata);
var areaOption = "<option value=''>Select State</option>";
for (var i = 0; i < obj.length; i++) {
areaOption += '<option value="' + obj[i] + '">' + obj[i] + '</option>'
}
$("#patientSelectState").html(areaOption);
答案 1 :(得分:1)
您可以更改AJAX处理器来执行此操作:
<强>过程-loc.php 强>
/* Above code the same */
if(mysqli_num_rows($get)>=0) {
$out = '<select id="selSubLoc"><option value="">Choose One:</option>';
foreach($gt AS $loc){
$seld = ($_POST['loca'] == $loc) ' selected' ? : '' ;
$out .= '<option value="' .$loc. '" ' .$seld. '>' .$loc. '</option>';
}
$out .= '</select>';
}else{
$out = 0;
}
echo $out;
并将您的前端代码的AJAX例程更改为:
$.ajax({
type: "POST",
url:"process-loc.php",
data:{loca:selectedloc}
}).done(function(recd){
$("#subloc").html(recd);
});
从PHP收到的数据将采用HTML格式,除非您使用dataType:
进行更改,因此您可以在PHP端构建HTML,然后将其放入#subloc
表中细胞
答案 2 :(得分:0)
在第一个框的事件中调用包含ajax的函数,该函数将从数据库中检索信息。此ajax调用将根据第一个输入获取数据。 现在查询您的数据库并在foreach循环中回显结果(您只能在那里创建一个标记)。 在ajax的成功中:&#39;捕获数据并显示它。
UILabel
http://www.9lessons.info/2010/08/dynamic-dependent-select-box-using.html