Php 存在变量时的ajax下拉框
我正在尝试对一个下拉框(动态)进行ajax调用Php 存在变量时的ajax下拉框,php,jquery,html,json,ajax,Php,Jquery,Html,Json,Ajax,我正在尝试对一个下拉框(动态)进行ajax调用 当变量$place可用时,它将进行ajax调用并填充 下拉框 我试图将变量$place传递到listplace.php并将其编码为json数据并获取数据列表值,但不确定编码的json文件是否正确 我只是尝试了一下,不确定下面的代码是否有效,请帮助 下拉框 <select> <option selected disabled>Please select</option> </select>
- 当变量
可用时,它将进行ajax调用并填充 下拉框$place
$place
传递到listplace.php
并将其编码为json数据并获取数据列表值,但不确定编码的json文件是否正确
我只是尝试了一下,不确定下面的代码是否有效,请帮助
下拉框
<select>
<option selected disabled>Please select</option>
</select>
请选择
Ajax调用
<?php if(isset($_GET['place']) && $_GET['place'] !='') {?>
<script>
$.ajax({
type: "POST",
data: {place: '<?= $place ?>'},
url: 'listplace.php',
dataType: 'json',
success: function (json) {
var $el = $("#name");
$el.empty(); // remove old options
$el.append($("<option></option>")
.attr("value", '').text('Please Select'));
}
});
</script>
<?php } ?>
$.ajax({
类型:“POST”,
数据:{位置:'},
url:'listplace.php',
数据类型:“json”,
成功:函数(json){
变量$el=$(“#名称”);
$el.empty();//删除旧选项
$el.append($(“”)
.attr(“值”),.text(“请选择”);
}
});
listplace.php
<?php
$sql = @mysql_query("select placename from employee where placename= '$place'");
$rows = array();
while($r = mysql_fetch_assoc($sql)) {
$rows[] = $r;
}
将AJAX调用更改为以下内容
<?php if (isset($_GET['place']) && $_GET['place'] != '') { ?>
<script>
$.ajax({
type: "POST",
data: {place: '<?= $_GET['place'] ?>'},
url: 'listplace.php',
dataType: 'json',
success: function (json) {
if (json.option.length) {
var $el = $("#name");
$el.empty(); // remove old options
for (var i = 0; i < json.option.length; i++) {
$el.append($('<option>',
{
value: json.option[i],
text: json.option[i]
}));
}
}else {
alert('No data found!');
}
}
});
</script>
<?php } ?>
$.ajax({
类型:“POST”,
数据:{位置:'},
url:'listplace.php',
数据类型:“json”,
成功:函数(json){
if(json.option.length){
变量$el=$(“#名称”);
$el.empty();//删除旧选项
for(var i=0;i
和你的PHP
<?php
$place = $_POST['place'];
$sql = @mysqli_query($conn,"select placename from employee where placename= '$place'");
$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
$rows[] = $r['placename'];
}
if (count($rows)) {
echo json_encode(['option'=> $rows]);
}else {
echo json_encode(['option'=> false]);
}
您是否通过控制台或警报检查了ajax响应?那么问题出在哪里?@2by2我不太确定我的ajax调用我怀疑我的ajax请求是否会在下拉列表中填充。如果位置可用,你想打ajax电话,但你正在用数据发送部门
这不应该是地方吗?@2by2我把部门编辑成了地方,我错把它留下了,你能帮我回答一下吗..谢谢,有疑问我应该改变我的下拉框代码关于id名称吗?你可以使用任何选择的id,你喜欢的。取决于您希望将选项附加到哪里。所以我应该添加下拉代码!谢谢我是否应该向下拉框中添加任何id?如果您想分离部分代码以更快地使用DOM(例如var main=$('#main)),那么对于jquery来说,codeyes id的查找速度更快;var select=main.find(“#我的选择”);如果要在id为#main的div中查找select only,则速度更快,而且它是独立的,我更喜欢在基本HTML元素上使用id,而在javascript中使用data atribute作为它的清理器。您的布局(id)将DOM分离到最低部分。
<?php if (isset($_GET['place']) && $_GET['place'] != '') { ?>
<script>
$.ajax({
type: "POST",
data: {place: '<?= $_GET['place'] ?>'},
url: 'listplace.php',
dataType: 'json',
success: function (json) {
if (json.option.length) {
var $el = $("#name");
$el.empty(); // remove old options
for (var i = 0; i < json.option.length; i++) {
$el.append($('<option>',
{
value: json.option[i],
text: json.option[i]
}));
}
}else {
alert('No data found!');
}
}
});
</script>
<?php } ?>
<?php
$place = $_POST['place'];
$sql = @mysqli_query($conn,"select placename from employee where placename= '$place'");
$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
$rows[] = $r['placename'];
}
if (count($rows)) {
echo json_encode(['option'=> $rows]);
}else {
echo json_encode(['option'=> false]);
}