我找到了一个Ajax搜索模板,我还有一个来自MSSQL的Javascript JSON变量。如何在这个Ajax搜索模板中添加Javascript中的JSON?Monteur是带有JSON数据的变量。
ajax:
$(document).ready(function () {
$.ajaxSetup({ cache: false });
$('#search').keyup(function () {
$('#result').html('');
$('#state').val('');
var searchField = $('#search').val();
var expression = new RegExp(searchField, "i");
$.getJSON('scripts/data.json', function (data) {
$.each(data, function (key, value) {
if (value.name.search(expression) != -1 || value.location.search(expression) != -1) {
$('#result').append('<li class="list-group-item link-class">' + value.name + ' | <span class="text-muted">' + value.location + '</span></li>');
}
});
});
});
$('#result').on('click', 'li', function () {
var click_text = $(this).text().split('|');
$('#search').val($.trim(click_text[0]));
$("#result").html('');
});
});
javascript:
SqlServer.executeQuery("SELECT PERSONALNUMMER, (NAME+' '+ VORNAME) AS NAME1 FROM OPENQUERY(SPHINX, 'select personalnummer, name, vorname from firma.personal where austrittsdatum is null') AS derivedtbl_1", function (event) {
Monteur = event;
}, function (error) {
alert("Error : " + JSON.stringify(error));
});
您可以将Javascript中的JSON数据作为参数传递给Ajax请求,然后在Ajax请求中使用该数据。以下是一种可能的实现方法:
将Javascript中的JSON数据转换为字符串格式:
var MonteurString = JSON.stringify(Monteur);
将字符串格式的JSON数据作为参数传递给Ajax请求:
$.ajax({
url: 'scripts/data.json',
data: { Monteur: MonteurString },
dataType: 'json',
success: function(data) {
// 在此处使用data变量进行数据处理
}
});
在Ajax请求中使用传递的JSON数据:
$.getJSON('scripts/data.json', function (data) {
// 使用传递的JSON数据进行数据处理
});
需要注意的是,如果传递的JSON数据过大,可能会导致Ajax请求失败或者响应时间过长。建议在传递JSON数据时使用压缩算法进行压缩,以减小数据大小。