2013-05-02 77 views
0

我的HTML代码jQuery的Ajax和GET不工作

<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> 

和IM这一和平努力更新状态选择使用jQuery阿贾克斯

<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>"; 
} 

我只是不能看到问题出在哪里。在此先感谢

+0

尝试删除..链接 – TGH 2013-05-02 04:35:05

+0

前检查您的浏览器控制台来查看错误。它给出了404 – 2013-05-02 04:35:35

+1

使用浏览器的工具(例如IE或Chrome中的F12)观察HTTP流量。看看当请求URL时会发生什么。 – 2013-05-02 04:36:04

回答

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

<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> 
+0

非常感谢,这让我疯狂了...... – manumotate 2013-05-02 04:55:41

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>'; 
... 
...