0

我有这种平静的 HTML 代码

<select id="country" name="country" onchange="updateState()">
    <option value="1">Country 1</option>
    <option value="2">Country 2</option>
    <option value="3">Country 3</option>
</select>
<select id="state" name="state">
    <option value="1">State 1</option>
    <option value="2">State 2</option>
    <option value="3">State 3</option>
</select>

我正在尝试使用 JQuery ajax 更新状态选择

<script type="text/javascript">
function updateState(){
    var state = $('#country').val();
    alert(state);
    $.ajax(
    {
        type: "GET",
        url: "../functions/selectstate.php",
        data: { sta : state }
    }).done(function( html )
    {
            $('#state').empty();
            $('#state').append(html);

    })
    }
}
</script>

selectstate.php 有这个 php 代码,我测试了它并且工作正常

include_once('select.php');
include_once('cndb.php');
$sDB = new SelectDb();
$data = $sDB->selectStatesById($_GET['sta']);
foreach($data as $row)
{
    echo "<option value=" . $row->state . ">" . $row->name . "</option>";
}

我只是看不出问题出在哪里。提前致谢

4

2 回答 2

0

HTML

<select id="country" name="country">
    <option value="1">Country 1</option>
    <option value="2">Country 2</option>
    <option value="3">Country 3</option>
</select>
<select id="state" name="state">
    <option value="1">State 1</option>
    <option value="2">State 2</option>
    <option value="3">State 3</option>
</select>

脚本

<script type="text/javascript">
    $(document).on('change','#country',function (){
        var state = $('#country').val();
        alert(state);
        $.ajax(
        {
            type: "GET",
            url: "../functions/selectstate.php",
            data: { sta : state }
        }).done(function( html )
        {
            //$('#state').empty();
            //$('#state').append(html);
            $('#state').html(html);
            // you can use it insetead of the above two lines
        })
        //}<-- here is th problem remove this extra bracket
    });
</script>
于 2013-05-02T04:50:13.420 回答
0

尝试使用以下方法。它可能有助于
HTML 代码:

<select id="country" name="country" onchange="updateState()">
<option value="1">Country 1</option>
<option value="2">Country 2</option>
<option value="3">Country 3</option>
</select>
<div id="stateDiv">
   <select id="state" name="state">
   <option value="1">State 1</option>
   <option value="2">State 2</option>
   <option value="3">State 3</option>
   </select>
</div>

JavaScript 代码:

...
...
.done(function( result )
 {
   $('#stateDiv').html(result);
})
...
...

PHP代码:

...
...
echo '<select id="state" name="state">';
foreach($data as $row)
{
 echo "<option value=" . $row->state . ">" . $row->name . "</option>";
}
echo '</select>';
...
...
于 2013-05-02T04:47:42.003 回答