2个dropboxes ajax

时间:2011-04-15 13:17:40

标签: php jquery combobox

下午好人,

本周我第一次开始使用ajax-request,但我不知道如何以正确的方式使用它。我的情况:我有2个dropbox,第一个包含来自数据库的数据,第二个必须填充我在第一个组合框中选择的选项(例如select * from presents where city = '$_GET['city']')。

我有以下代码:

来自index.php header-section

    $('#woonplaats').change(function(){
        var woonplaats = $('#woonplaats').val();

        $.ajax({ 
        type: "GET", 
        url: "ajax.php?woonplaats="+woonplaats+"", 
        success: function(msg){
            $('#pandtype').html(msg);}
        });
    });

来自ajax.php

$_GET['woonplaats'] = mysql_real_escape_string($_GET['woonplaats']);

if(isset($_GET['woonplaats']))
{ 
    $query = "SELECT * FROM aanbod WHERE Plaats = '".$_GET['woonplaats']."'";
    $result = mysql_query($query);
    echo $query;

    echo "<select id='pandtype' name='pandtype'>";
    while($row = mysql_fetch_object($result))
    { 
        echo '<option value="'.ucfirst(strtolower($row->PandType)).'">'.ucfirst(strtolower($row->PandType)).'</option>';
    }
    echo "</select>";
}

我想念什么? 我与原来的第二个加载的组合框有什么关系?

亲切的问候!

2 个答案:

答案 0 :(得分:0)

为了回应自我回答,我有一个小的重构 -

而不是创建占位符元素并使用.html()jQuery方法:

$('#blaat').html(msg);

您可以动态创建希望ajax响应在...中显示的元素。

要在元素之后显示创建ajax请求(假设它是#woonplaats):

$('<div>' + msg + '</div>').appendTo($('#woonplaats'));

我更喜欢这种方法,因为依赖于继承的css规则,你最终可能会在显示中出现一些“wonk”。它在脚本设置中有一些内容,但可能会阻止在元素上为“display:none”添加另一个css类或内联样式。

答案 1 :(得分:0)

使用jquery

头标记中的

* * *

<script language="JavaScript" type="text/javascript">
$(document).ready(function(){
            $('#states').change(function(){
                $('#cities').load('places.php?state='+$('#states').val() );
        $('#cities').focus();
            });
        });
</script>

* *组合状态

<select name="states" id="states" onChange="" width="200px" style="width: 200px">
        <option value="">Select state</option>
        <?php
        $query_uf =  "SELECT * FROM states ORDER BY state ASC";
        $result = mysql_query($query_uf, $bd);
        while ($uf = mysql_fetch_assoc($result)) {
            echo "<option value='".$uf['cod']."'>".$uf['name_state']."</option>";
        }
?>
</select>

* *组合城市(当州改变时填写)

<select name="cities" id="cities" width="200px" style="width: 200px">
        <option value="">Choose a city</option>
      </select>

places.php

$id_state = $_GET['state'];
$result = mysql_query("SELECT * FROM cities WHERE cod_st = '".$id_state."' ORDER BY name_city ASC", $bd) or die(mysql_error());
echo "<option value=\"\">Select city.</option>";
while($row = mysql_fetch_array($result) ){
    echo "<option value='".$row['cod_city']."'>".$row['name_city']."</option>";
}

表状态 鳕鱼| name_State


1 |佛罗里达 2 |加利福尼亚

表城市 cod_city | name_city | cod_st


1 |迈阿密| 1 2 |奥兰多| 1 3 |圣地亚哥| 2 4 |旧金山| 2