我使用Javascript / jquery创建了一个动态下拉菜单,我填充了php mysql:
$("#first-choice").change(function() {
$("#second-choice").load("getter.php?choice=" + $(this).val());
});
它工作得很好,除非第一个选中的选项有两个单词而不是一个(中间空格)Ex:“选项”工作正常,第二个列表填充,“选项二”不起作用,第二个列表为空。这是我的getter.php代码:
$choice = $_GET['choice'];
$sth = $db->prepare("SELECT code FROM sets WHERE name='$choice'");
$sth->execute();
$choicecode = $sth->fetchColumn();
答案 0 :(得分:0)
在JS中发送它时需要对其进行编码:
encodeURIComponent($(this).val()); // will produce something like "Option%20Two"
所以,看起来应该是这样的:
(`$("#second-choice").load("getter.php?choice=" + encodeURIComponent($(this).val()) );`)
答案 1 :(得分:0)
放入查询字符串时,需要对空格进行编码。 jQuery可以为你做到这一点:
$("#first-choice").change(function() {
$.get("getter.php", { choice: $(this).val() }, function(data) {
$("#second-choice").html(data);
});
});