Javascript 在传递带空格的变量时,change函数未运行SQL select语句
我有两个下拉列表,都是从SQL数据库填充的。根据用户从第一个下拉列表中选择的内容填充第二个下拉列表 只有在第一个下拉列表中选择的值不包含空格时,才会填充第二个下拉列表。如果第一个下拉列表中的选定值包含空格,则第二个下拉列表中不显示任何内容 我正在使用jquery。更改加载“getter.php”的函数,该函数运行SQL select语句,该语句针对第一个下拉列表中选择的值执行where子句 我的目标是获取第一个下拉列表中选择的任何值,该列表包含空格,以便根据该值填充第二个下拉列表 提前谢谢 test.phpJavascript 在传递带空格的变量时,change函数未运行SQL select语句,javascript,php,jquery,html,sql,Javascript,Php,Jquery,Html,Sql,我有两个下拉列表,都是从SQL数据库填充的。根据用户从第一个下拉列表中选择的内容填充第二个下拉列表 只有在第一个下拉列表中选择的值不包含空格时,才会填充第二个下拉列表。如果第一个下拉列表中的选定值包含空格,则第二个下拉列表中不显示任何内容 我正在使用jquery。更改加载“getter.php”的函数,该函数运行SQL select语句,该语句针对第一个下拉列表中选择的值执行where子句 我的目标是获取第一个下拉列表中选择的任何值,该列表包含空格,以便根据该值填充第二个下拉列表 提前谢谢 te
<!DOCTYPE html>
<html>
<head>
<?php
include 'connect.php';
?>
<meta charset='UTF-8'>
<title> Test </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#db-one").change(function() {
$("#db-two").load("getter.php?choice=" + $("#db-one").val());
});
});
</script>
</head>
<body>
<?php
$query = "SELECT parent FROM poc_sla GROUP BY Parent";
$result = mysql_query($query);
?>
<select name="db-one" id="db-one" style="width:400px;">
<option value="">--Select--</option>
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['parent'];?>"> <?php echo $line['parent'];?> </option>
<?php
}
?>
</select>
<br>
<select id="db-two">
<option>Please choose from above</option>
</select>
</body>
</html>
getter.php
<?php
$dbhandle = mysql_connect("localhost", "test", "test") or die("Unable to connect to MySQL");
$selected = mysql_select_db("problemmanagement") or die("Could not select examples");
$choice = mysql_real_escape_string($_GET['choice']);
$query = "SELECT subsidiary FROM poc_sla WHERE Parent ='$choice'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo "<option>" . $row{'subsidiary'} . "</option>";
//echo "<option>" . $query . "</option>";
}
?>
试试这个,应该有用
$(document).ready(function(){
var value = $('#db-one').val();
value = value.replace(' ', ''); // replace white space
$("#db-one").change(function() {
$("#db-two").load("getter.php?choice="+value);
});
});
您的url未编码,空格替换为%20 尝试: 工作!我只需要添加一个组件
那么你是说如果你有WHERE Parent='word1 word2',它就不起作用了?或者是mysql\u real\u escape\u字符串插入了一些内容而不是空格或+或%20?例如,如果在第一个下拉列表中选择了颜色,它将使用颜色加载变量$choice,第二个下拉列表将填充红色。例如,如果我在第一个下拉列表中选择的值是颜色着色,则第二个下拉列表将显示颜色不填充,因为它们是介于颜色和阴影之间的空间。希望这更有意义。您是否看到数据库中实际请求的内容以及返回的内容?例如,颜色%20SHADE可能不会出现在您的DBso中,我尝试过这一点$choice=urldecodemysql\u real\u escape\u string$\u GET['choice'];嗨,谢谢你的回复,我刚试过这个,还是一样的错误,恐怕还是没有乐趣。我似乎认为问题出在jquery中,而不是getter.phpecho$choice变量中的代码中,并检查您得到了什么。我尝试了回显choice,但由于getter.php在选择带空格的值时不会运行,所以我看不到输出的内容。请使用ajax post,而不是将所有数据发送到php和在getter.php中使用上面的代码,这些代码对您来说很好。只是尝试了相同的错误,并且也不允许没有空格的单词通过
$("#db-two").load("getter.php",
{
choice : $("#db-one").val()
});
$(document).ready(function(){
$("#db-one").change(function() {
$("#db-two").load("getter.php?choice=" + encodeURIComponent($("#db-one").val()));
});
});