0

我正在尝试使用 Ajax、jQuery、PHP 和 MySQL 根据第一个下拉列表选择填充第二个下拉列表。问题是第二个下拉列表中的选项只出现在一行中!(一行中的所有选项)我希望 results.php 中的 while 循环可以处理这个问题,但似乎不行!你能告诉我如何解决这个问题吗?这是我的代码:

<html>
<body>
<?php
$mysqli = new mysqli('localhost', 'root', '', 'chain');
if ($mysqli->connect_errno) 
{
die('Unable to connect!');
}
else
{
$query = 'SELECT * FROM Cars';
if ($result = $mysqli->query($query)) 
 {
 if ($result->num_rows > 0) 
    {
 ?> 
 <p>
  Select a Car
<select id="selectCar">
<option value="select">Please Select From The List</option>
    <?php       
     while($row = $result->fetch_assoc()) 
   {
   ?>       
   <option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?></option>      
  <?php         
}
  ?>
 </select>
 </p>
<select>
    <option value="select">Please Select From The List</option>
    <option id="result"></option>
    </select>
    <?php
    }
    else 
    {
        echo 'No records found!';
    }
    $result->close();
}
else 
{
    echo 'Error in query: $query. '.$mysqli->error;
}
    }
     $mysqli->close();
    ?>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function()
        {
            $('#selectCar').change(function()
            {
                if($(this).val() == '') return;
                $.get(
                    'results.php',
                    { id : $(this).val() },
                    function(data)
                    {
                        $('#result').html(data);
                    }
                );
            });
        });
    </script>
      </body>
      </html>

在 PHP 结果中我有:

<?php
 $mysqli = new mysqli('localhost', 'root', '', 'chain');
 $resultStr = '';
 $query = 'SELECT * FROM models WHERE carID='.$_GET['id'];
 if ($result = $mysqli->query($query)) 
 {
if ($result->num_rows > 0) 
{
    while($row = $result->fetch_assoc())
    {
  $resultStr.=  '<option    value="'.$row['id'].'">'.$row['model'].'</option>'; 
    }
}
else
{
 $resultStr = 'Nothing found';
}
   }
    echo $resultStr;
   ?>
4

2 回答 2

1

您正在$('#result').html(data);主文件中进行设置。

result应该是 HTMLselect元素的 id,你用它作为 anoption元素的 id。

(您将值附加到option元素中,这不会创建新的 HTML 元素,但它们应该插入到select元素中。)

于 2012-12-13T09:27:08.403 回答
1

你应该把你的脚本编辑成这个..

<select id="result">
  <option value="select">Please Select From The List</option>
</select>
于 2012-12-13T09:32:15.867 回答