我有以下代码以生成级联下拉列表,但是由于某种原因,ajax发布无法正常工作。我可以获取它以填充状态列表,当我选择一个状态时,我会向我显示正确的值,但是当需要发布到fetch_state.php时,它似乎发布了null。有人可以帮我解释为什么这样做吗?
这是下面的代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include("connection.php");
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="container">
<div id="body">
<div id="dropdowns">
<div id="center" class="cascade">
<?php
$sql = "SELECT DISTINCT state FROM tbl_zip ORDER BY state ASC";
$query = mysqli_query($con, $sql);
?>
<label>State:
<select name="state" id = "state">
<option value="">Please Select</option>
<?php while ($rs = mysqli_fetch_array($query, MYSQLI_ASSOC )) { ?>
<option value="<?php echo $rs["state"]; ?>"><?php echo $rs["state"]; ?></option>
<?php } ?>
</select>
</label>
</div>
<div id="city" class="cascade"></div>
<div id="zip" class="cascade"></div>
</div>
</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("select#state").change(function(){
var state = $("select#state option:selected").attr('value');
alert(state);
$("#city").html( "" );
$("#zip").html( "" );
if (state.length > 0 ) {
alert(state.length);
$.ajax({
type: "POST",
url: "fetch_state.php",
data: "state="+state,
cache: false,
beforeSend: function () {
$('#city').html('<img src="loader.gif" alt="" width="24" height="24">');
},
success: function(html) {
$("#city").html( html );
}
});
}
});
});
</script>
</body>
</html>
<?php
include("connection.php");
var_dump($_POST);
$state = trim(mysql_escape_string($_POST["state"]));
$sql = "SELECT DISTINCT city FROM tbl_zip WHERE state = ".$state ." ORDER BY city";
$count = mysqli_num_rows( mysqli_query($con, $sql) );
if ($count > 0 ) {
$query = mysqli_query($con, $sql);
?>
<label>City:
<select name="city" id="drop2">
<option value="">Please Select</option>
<?php while ($rs = mysqli_fetch_array($query, MYSQLI_ASSOC)) { ?>
<option value="<?php echo $rs["city"]; ?>"><?php echo $rs["city"]; ?></option>
<?php } ?>
</select>
</label>
<?php
}
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("select#drop2").change(function(){
var state_id = $("select#drop2 option:selected").attr('value');
// alert(state_id);
if (state_id.length > 0 ) {
$.ajax({
type: "POST",
url: "fetch_city.php",
data: "city="+city,
cache: false,
beforeSend: function () {
$('#city').html('<img src="loader.gif" alt="" width="24" height="24">');
},
success: function(html) {
$("#city").html( html );
}
});
} else {
$("#city").html( "" );
}
});
});
</script>
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean
首先,将您更改mysql_escape_string
为mysqli_escape_string
$state = trim(mysqli_escape_string($con, $_POST["state"]));
然后state
用引号引起来
$sql = "SELECT DISTINCT city FROM tbl_zip WHERE state = '".$state ."' ORDER BY city";
同时,把<script>
块出来的fetch_state.php
,只是有它在index.php
与其他<script>
块
问题内容: 我试图使用AngularJS创建一个链接/级联的下拉列表(选择元素),但是我很难用我的对象属性过滤和更新“ selected”属性。 首次加载页面时,所选项目将被过滤并正确显示在下拉菜单中。更改父级下拉菜单后,子级选择项不会抓住已过滤列表中的第一个项,导致子级下拉项不会更新。 任何见解将不胜感激,请注意,我将父/子/孙子数组分开(而不是在子数组中),因为最终我将从SQL中的单独spoc
本文向大家介绍下拉菜单的级联操作(ajax),包括了下拉菜单的级联操作(ajax)的使用技巧和注意事项,需要的朋友参考一下 在开发中常常会遇到菜单的级联操作,比如:国家、城市、乡镇的选择等。当选中某个国家的时候,后面的菜单会把该国家内的城市罗列出来,当选中城市的时候,后面的菜单会把对应的乡镇列出来。 解决这种菜单的级联操作的办法,我理解的有两种: ①使用js来实现,把页面所用到的级联数据放到js
本文向大家介绍android实现下拉菜单三级联动,包括了android实现下拉菜单三级联动的使用技巧和注意事项,需要的朋友参考一下 android中的下拉菜单联动应用非常普遍,android中的下拉菜单用Spinner就能实现,以下列子通过简单的代码实现三级菜单联动。 一 样式文件 二 联动逻辑代码 三 结果 四 总结 三级联动主要是灵活的应用三维数组,这样能很方便的通过数组索引将三个菜单关联,同
本文向大家介绍ajax三级联动下拉菜单效果,包括了ajax三级联动下拉菜单效果的使用技巧和注意事项,需要的朋友参考一下 ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可; 来找一张表: 实现: 中国地域的三级联动:省、市、区; 图: 说一下思路: (1)当用户选择省份的时候触发事件,把当前的省份的id通过ajax发出请求传递到服务端的程序中 (2)比如取中国地域,中国是0001,那么
本文向大家介绍JavaScript省市级联下拉菜单实例,包括了JavaScript省市级联下拉菜单实例的使用技巧和注意事项,需要的朋友参考一下 最近学了一个关于省市级联简单的小例子,贴出来与大家分享一下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍Bootstrap每天必学之级联下拉菜单,包括了Bootstrap每天必学之级联下拉菜单的使用技巧和注意事项,需要的朋友参考一下 本文将介绍自定义的bootstrap级联下拉菜单,主要应用场合有省市级关联菜单等等,那么就先拿这个例子来讲,当然其他场景的关联菜单也同样适用。说实话,封装好一个通用的组件还是需要花费很多精力的和时间的,所谓通用,自然要考虑周全,叹!这次整理的Bootstr