我有一个页面有两个选择,第一个选择汽车制造商,第二个选择汽车系列。选择选项应根据选择的制造商进行相应更改。假设如果选择了“BMW”,则应显示“3 系列”、“Z 系列”等列表。如果我将制造商更改为“奥迪”,它们应该会更改。我已经尝试过很多次尝试使用 AJAX 传递数据来与我的 PHP 函数对话,但是在“成功:函数(数据)”中,数据为空,如控制台日志中所示。下面是我的ajax代码。
$(document).ready(function(){
$('#chooseManu').on('change',function(){
var manu = $(this).val();
if(manu){
$.ajax({
url:'ServerScripts/showStock.php?manu='+manu,
data:{'manu':manu},
dataType: 'json',
success:function(data){
// $('#chooseSeries').html(html);
console.log(data);
}
});
}
});
});
根据选择的制造商更改系列选项的 PHP 函数
function seriesChoice() {
require 'connection.php';
if (isset($_POST["manu"]) && !empty($_POST["manu"])) {
$chosenManu = json_decode($_POST["manu"]);
$findSeries = "SELECT DISTINCT carSeries FROM carParts WHERE carManu = ".$chosenManu;
$series = $conn->query($findSeries);
if ($series->num_rows > 0) {
echo '<option value="">Series</option>';
while($displaySeries = $series->fetch_assoc()) {
echo '<option>',$displaySeries['carManu'],'</option>';
}
} else {
echo '<option value="">Series Not Available</option>';
}
} else {
echo '<option value="">Select Manufacturer</option>';
}
}
?>
然后我的 html 全部显示:
<select id="chooseManu">
<option value="0" selected="selected">Manufacturer</option>
<?php
manuChoice();
?>
</select>
<select id="chooseSeries">
<?php
seriesChoice();
?>
</select>
在 webdev 工具 (F12) 的“网络”选项卡上,我可以看到它确实通过了“ServerScripts/showStock.php?manu=(manu selected)”,但在控制台日志中,数据显示为空。除非我“console.log(manu)”,否则显然它也会记录选择的制造商。我已经测试了许多语句,看看 php 函数中的 $_POST 是否不为空且 isset,两者都不是。所以看起来该函数甚至根本没有看到正在传递的变量。
了解这是我的第一个实际项目之一,我可以看到这里会有很多东西在编码世界中不好看,所以请对我温柔!然而,我现在主要关心的是让这个变量被看到。
如果这里有什么我没有解释清楚,或者您只需要澄清,请告诉我!
任何帮助是极大的赞赏!