从数据库动态填充选择框

时间:2012-08-01 15:15:33

标签: php jquery ajax

希望你能帮忙,因为我开始把头发拉出来:)似乎有很多关于此的链接,但我不能让他们中的任何一个工作,所以我只是要问直言不讳。

我有一个数据库......它有Region,Area,Manager,Employee

的字段

我有一个前端表单,里面有选择框...

当你选择Region时,我需要Area selectbox来动态填充数据库中的相关区域而不刷新页面

然后,当选择Area selct选项时,需要填充Manager。等等。

毫无疑问,这需要一个ajax / Jquery解决方案,正如我所说,有很多关于此的文章,但我无法让它们工作。我从来没有在今天之前尝试过AJAX,如果这是一个完全没有问题的话,我真诚地道歉。

非常感谢任何帮助或指导。三江源!

好的,我的Jquery有这个:

$(document).ready(function() {  
   $('#Region').change(function() {
  // remove all options in Area select
 $('#Area').html('');
  // find the new Region selected
  var selected_region = $('#Region').val();
  // get new options from server and put them in your Area select
  $('#Area').get('Ajax/getArea.php?Region=' + selected_region);

});
});

这是我的PHP:

<?php

// get province id passed in via `post` or `get`
$region = $_REQUEST['Region'];

// get the districts in that province
$query = "SELECT DISTINCT AREA FROM Sales_Execs WHERE Region ='$region'";

// link to your database
$link = mysqli_connect("localhost", "root", "", "Quality_Monitoring");

// execute your query
$result = mysqli_query($link, $query);

// parse the options
while($row = mysqli_fetch_assoc($result)) {
 $options = "<option value=\"".$row['AREA']."\">".$row['AREA']."</option>\n  ";
}


// send options
echo $options;

?>

仍然没有快乐......有人能发现我所缺少的东西吗?

1 个答案:

答案 0 :(得分:0)

试试这个,我在代码中包含了3个不同的部分:

1) the PHP code
2) The jQuery
3) The select box container

:: Your PHP file (call it getArea.php)
$selectbox = '<select name="region" onchange="jQuery.selectRegion(this.value)">';

$region = $_REQUEST['Region'];      /* Make sure you escape this */

$query = "SELECT DISTINCT AREA FROM Sales_Execs WHERE Region ='$region'";

$link = mysqli_connect("localhost", "root", "", "Quality_Monitoring");

$result = mysqli_query($link, $query);
$options = '';
while($row = mysqli_fetch_assoc($result)) {
    $options .= '<option value="' . $row['AREA'] . '">' . $row['AREA'] . '</option>';
}

echo $selectbox;
echo $options;
echo '</select>';
    exit;

:: Your jquery

jQuery.selectRegion = function selectRegion(regionId)
{
$.get('ajax/getArea.php?region='+regionId,function(data){
    $('#select_container').html(data);
});
}

:: The select box container
<div id="select_container">
<select name="region" onchange="jQuery.selectRegion(this.value)">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</select>
</div>

希望这有帮助