php - Ajax POST 以获取选择项
问题描述
我在选择中有一些地方的名称。其中一些名称带有撇号。当用户通过该选择做出选择时,Ajax 对表进行查询以查找与该位置匹配的商店的出现情况。我的代码是这样的:
<?php
echo "<select id='location' name='location'>";
echo "<option value='' selected>Select a location</option>";
$sql = "SELECT * FROM locations_list ORDER BY location_name;";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "<option value='" . $row['location_name'] . "'>". $row['location_name'] . "</option>";
}
}
echo "</select>";
echo "<select id='shop' name='shop'>";
echo "<option value='' selected='shop'>Select location first</option>";
?>
<script>
$(document).ready(function(){
$('#location').on('change',function(){
var locationID = $(this).val();
if(locationID){
$.ajax({
type: 'POST',
url: 'extract_shops.php',
data: {'location': locationID},
success:function(html){
$("#shop").html(html);
}
});
}else{
$('#shop').html('<option value="">Select a location first!</option>');
}
});
});
</script>
<?php
echo "</select>";
当地点的名称中没有撇号时,事情就会顺利进行。在这种情况下,Ajax 将位置名称传递给 extract_shops.php(它有一个简单的"SELECT * FROM shops WHERE location = '$passedlocationname';"
)并返回一个商店列表。
但是当 location 有一个撇号的名称时,Ajax 不会将任何内容传递给 extract_shops.php。我在 extract_shops.php 中放置了一个 if,它在第二个选择中返回此信息,以防 Ajax 没有传递任何内容。
我哪里错了?
解决方案
推荐阅读
- javascript - 如何在 Typescript 中检查自定义接口类型
- asp.net-core - 尝试发布 blazor wasm 应用程序,但单声道运行时和类库不同步
- python - Python 库安装失败
- node.js - 在 Node.js 中将对象传递给 EJS
- swift - 为什么 UIStackView 中的 UILabel 在重用时会失去高度?
- docker - 使用 docker 镜像在 Pivotal 上发布 RabbitMq
- hybris - cmssite 和前端扩展之间的链接
- postgresql - 无法将数据从 csv 文件导入 postgres
- java - Android中涉及measureLimit的神秘indexOutOfBoundsException
- c# - 如何检查单选按钮是否在 MVC 视图中被选中?