我有两组单选按钮:一组用于汽车品牌,另一组用于汽车型号。从汽车品牌中选择“Audi”将通过$(ajax) 在我的数据库中获取品牌名称为“Audi”的所有车型。
function fetchModels() {
$.ajax({
type: "POST",
url: "script/rent/models.php",
data: {dateFrom: selectedDateFrom,
dateTo: selectedDateTo,
destination: selectedDestination,
brand: selectedBrand},
success: function(data) {
$("#model-wrapper").html(data);
}
}
);} // fetchModels END
/* Whenever the selected car brand is changed, change the value of
selectedBrand and run the function fetchModels(). */
$('input[type=radio][name=brand]').on('change', function() {
switch($(this).val()) {
case 'Audi':
selectedBrand = "Audi";
break;
case 'Toyota':
selectedBrand = "Toyota";
break;
case 'Volkswagen':
selectedBrand = "Volkswagen";
break;
case 'Volvo':
selectedBrand = "Volvo";
break;
}
fetchModels();
});
我的问题是 models.php 无法从选定的汽车品牌中获取值。这可能是因为我的汽车品牌也会根据选择的位置动态更改(与汽车型号相同)。
也就是说,这个while循环是在brands.php
中运行的获取汽车品牌:
while ($row = mysqli_fetch_array($result)) {
$brand = $row['brand'];
echo "<input type=\"radio\" name=\"brand\" value=\"$brand\">" . $brand . "</input>";
}
如果我添加 <input type="radio" name="brand"/>
手动进入 PHP 文件,它工作正常,但无法从生成的文件中获取值。
解释我的问题的 gif:
Audi 和 Volkswagen 是由 brands.php
生成的单选按钮同时 Test
显然不是。
最佳答案
基于 your generated HTML 的图像您链接的问题出在您使用的 case 语句中。生成的值不存在于 case 语句中,因此未选择任何 case,因此自然不会设置 selectedBrand
。它与静态与动态生成的元素无关。
正如评论中指出的那样,case 语句无论如何都是多余的。将其替换为 selectedBrand = $(this).val()
。因此,您将获得选定的值无论它是什么。
关于javascript - 从 $.(ajax) 获取单选按钮值并将其传递到 SQL 查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36728224/