2011-04-15 61 views
4

下午好人們,2收存箱AJAX

這一週,我開始了第一次與一個Ajax請求的工作,但我沒有任何想法如何用正確的方式。我的情況:我有兩個dropboxes,第一個包含數據庫中的數據,第二個必須填寫我在第一個組合框中選擇的選項(例如select * from presents where city = '$_GET['city']')。

我有下面的代碼:

從index.php的集管部分

$('#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>"; 
} 

我怎麼錯過? 我和原來的第二個裝載組合框有什麼關係?

親切的問候!

+0

修正了它! $('#blaat')。html(msg);}而不是#pandentype 並且必須在選擇框周圍放置一個帶id bla的div。 – Jordy 2011-04-15 13:23:13

+0

你在哪裏得到錯誤?在js或遠程服務器上。 – 2011-04-15 13:24:22

+0

沒有得到任何錯誤,它只是沒有解析我想要的內容。 現在沒關係我修好了! – Jordy 2011-04-15 13:32:09

回答

0

針對自我回答的反應,我有一個小的重構來offer--

而是創建一個佔位符元素和使用的.html()jQuery的方法:

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

你可以動態地創建你希望你的Ajax響應,以顯示該元素...

元素後顯示創建Ajax請求(讓我們說這是#woonplaats):

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

我更喜歡這種方法,因爲依賴於繼承的css規則,最終可能會在顯示中顯示一些「wonk」。它在腳本設置中有更多的內容,但可能會阻止在元素上添加另一個css類或內聯樣式的「display:none」。

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> 

地方。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>"; 
} 

表狀態 cod | name_State


1 |佛羅里達州 2 |加利福尼亞州

表城市 cod_city | name_city | cod_st


1 |邁阿密| 1 2 |奧蘭多| 1 3 |聖地亞哥| 2 4 |舊金山| 2