2013-11-22 97 views
0

我有觸發一次我選擇javascript代碼從第一個下拉:動態PHP使用JavaScript下拉(URL)

$(document).ready(function(){ 
    $("#first-choice").change(function() { 
     $("#second-choice").load("getter.php?choice=" + $("select#first-choice").filter(":selected").val()); 
    }); 
}); 

我認爲,當我創建了getter.php擴展的問題在於......我在我的sql中使用選擇。選擇是getter.php定義爲:

$choice = $_GET['choice']; 
$sth = $db->prepare("SELECT name, code FROM sets WHERE name='$choice'"); 
$sth->execute(); 
$choicecode = $sth->fetchColumn(1); 

當JavaScript的變化大火,我得到一個空的下拉。所以我通過將Choice設置爲等於一個首選項來進行測試,而不是$ _GET,並且第二個列表正確填充。所以我假設我的錯誤來自我的js,通過定義所選的第一個選項。

+0

這是所有'getter.php'?你在哪裏渲染新的選擇?看起來這個文件根本沒有輸出。 –

+0

@MatthewRapati不,還有更多的渲染,但我100%確定錯誤不在於getter.php,就像我說過的,我將「choice」的值更改爲已知值而不是$ _get,它工作正常 – rambossa

回答

1

嘗試在改變功能這一

$("#first-choice").change(function() { 
    $("#second-choice").load("getter.php?choice=" + $(this).val(); 
}); 

$("#first-choice").change(function() { 
    $("#second-choice").load("getter.php?choice=" + $("#first-choice option:selected").val(); 
}); 

或使用發現

$("#first-choice").change(function() { 
    $("#second-choice").load("getter.php?choice=" + $("#first-choice").find(":selected").val(); 
}); 

確保您已在選項的值屬性輸入的值

<option value="test">test</option> 
+0

第一個選項有效。我從來沒有見過。所以基本上「this」可以用於更改功能。是否有一種方法可以在以後定義第一個選定和選定的選項,以便將它們插入數據庫中? – rambossa

+0

'$(this)'將會觸發當前元素的對象,就像你選擇第三個選項一樣,它將會有第三個選項的對象 –

+0

所以我剛發現一個錯誤,如果在選擇名稱之間存在一個間距,$ _get似乎不工作...任何方式來解決這個問題? – rambossa