Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在传递带空格的变量时,change函数未运行SQL select语句_Javascript_Php_Jquery_Html_Sql - Fatal编程技术网

Javascript 在传递带空格的变量时,change函数未运行SQL select语句

Javascript 在传递带空格的变量时,change函数未运行SQL select语句,javascript,php,jquery,html,sql,Javascript,Php,Jquery,Html,Sql,我有两个下拉列表,都是从SQL数据库填充的。根据用户从第一个下拉列表中选择的内容填充第二个下拉列表 只有在第一个下拉列表中选择的值不包含空格时,才会填充第二个下拉列表。如果第一个下拉列表中的选定值包含空格,则第二个下拉列表中不显示任何内容 我正在使用jquery。更改加载“getter.php”的函数,该函数运行SQL select语句,该语句针对第一个下拉列表中选择的值执行where子句 我的目标是获取第一个下拉列表中选择的任何值,该列表包含空格,以便根据该值填充第二个下拉列表 提前谢谢 te

我有两个下拉列表,都是从SQL数据库填充的。根据用户从第一个下拉列表中选择的内容填充第二个下拉列表

只有在第一个下拉列表中选择的值不包含空格时,才会填充第二个下拉列表。如果第一个下拉列表中的选定值包含空格,则第二个下拉列表中不显示任何内容

我正在使用jquery。更改加载“getter.php”的函数,该函数运行SQL select语句,该语句针对第一个下拉列表中选择的值执行where子句

我的目标是获取第一个下拉列表中选择的任何值,该列表包含空格,以便根据该值填充第二个下拉列表

提前谢谢

test.php

    <!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()));

                });

            });