【发布时间】:2018-06-28 09:17:42
【问题描述】:
我想将选项填充到选择框中我正在使用 ajax 从数据库中获取一些记录,并且在它的成功函数中我正在填充字段我的代码工作正常但现在我已经更改了我正在获取的函数数据和我的结果都消失了,这意味着它不再显示,但我也想要这个功能,这是我的 jQUery 的代码。
$('#cq-select-model').click(function () {
$.ajax({
url: ajaxurl,
data: {action: 'getPopulateField'},
type: 'GET',
success: function (data) {
console.log(data);
var $year = $('#car-years');
var $make = $('#car-makes');
var $model = $('#car-models');
$year.find('option').remove();
$make.find('option').remove();
$model.find('option').remove();
$make.append('<option value="Ferrari">Ferrari</option>');
for (var i in data.model) {
$year.append('<option value=' + data[i].year + '>' + data[i].year + '</option>');
$model.append('<option value=' + encodeURIComponent(data[i].model) + '>' + data[i].model + '</option>');
}
$('#cq-show-data').show();
$('.show-data-desc').show();
}
});
});
这是我从数据库中获取记录的函数的代码。
我之前有这个功能:
function getPopulateField() {
global $wpdb;
$data = $wpdb->get_results("SELECT * FROM wp_ovdq_populate_fields");
wp_send_json($data);
}
add_action('wp_ajax_getPopulateField', 'getPopulateField');
add_action('wp_ajax_nopriv_getPopulateField', 'getPopulateField');
并将我的功能更改为:
function getPopulateField() {
global $wpdb;
$model = $wpdb->get_results("SELECT DISTINCT model FROM wp_ovdq_populate_fields ORDER BY model ASC");
$year = $wpdb->get_results("SELECT DISTINCT year FROM wp_ovdq_populate_fields");
$data = array_merge($model, $year);
wp_send_json($data);
}
add_action('wp_ajax_getPopulateField', 'getPopulateField');
add_action('wp_ajax_nopriv_getPopulateField', 'getPopulateField');
通过使用这个函数,我得到了类似这样的 json 响应。
`200
:
{model: "Mondial Quattrovalvole"}
201
:
{model: "Mondial T"}
202
:
{model: "Mondial T Cabriolet"}
203
:
{model: "Portifino"}
204
:
{model: "Testarossa"}
205
:
{year: "1947"}
& More....
【问题讨论】:
-
您说“我的代码运行良好,但现在我更改了获取数据的函数,结果消失了”。你以前有什么,你改变了什么?
-
我已经更新了我的问题
标签: javascript php jquery mysql wordpress