所以我對ajax比較陌生,但我對發生的事情有一個概念。我有一個註冊表格,使用數據庫中的ajax更新「國家,城市和地區」字段。使用Ajax填充SQL下拉菜單
的PHP看起來是這樣的
<select disabled name="City" id="City<?php $template->the_instance(); ?>" >
<?php
global $wpdb;
$results = $wpdb -> get_results("SELECT Distinct City FROM Location WHERE Country = '".$selected_country."'");
foreach ($results as $row)
{
echo "<option value=\"$row->City\">" . $row->City. "</option>";
}
echo "</select>";
?>
和Java腳本看起來像這樣
$("#Country").change (function(){
var selected_country = $('#Country option:selected').val();
if (selected_country !=''){
$('#City').prop('disabled', false);
}
else {
$('#City').prop('disabled', 'disabled');
}
$.ajax({
url: ajax_object.ajaxurl,
type : 'post',
data : {
action : 'fetch_city',
selected_country: selected_country
}
})
})
如果我改變,其中請求被髮送到myform.php的「URL」,結果下拉列表不會更新實際的數據庫結果。我的猜測是我錯過了一個步驟。
P.S我沒有使用「動作」,因爲我不確定它是否有幫助。我沒有將它添加到functions.php文件中並動態地將其掛鉤。
希望這是有道理的
我的數據庫查詢發生在php文件中,而不是java腳本,是否有可能這樣做。沒有在JS中運行查詢?我不太確定 –
數據庫訪問只能發生在您通過url的ajax調用請求的php代碼中:ajax_object.ajaxurl。請注意,您必須注意從此php返回的數據格式,以及如何處理javascript/ajax請求中的結果。 – Malvolio