jquery $.post - Триология, заканчивающаяся здесь - некоторые вопросы об интеграции json с $.post
Вот некоторый код, который я видел в Интернете, чтобы помочь мне архивировать более или менее то же самое:
<input size="30" id="inputString" onkeyup="lookup(this.value);" type="text" />
function lookup(inputString) {
if(inputString.length == 0) {
// Hide the suggestion box.
$('#suggestions').hide();
} else {
$.post("rpc.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup
1) ** {queryString: "" + inputString + ""} Это нотация json, но зачем нам первый "" и последний ""? **
2) $ ('# autoSuggestionsList'). Html (data);
[ОБНОВЛЕНИЕ] Предполагается, что возвращаемые данные со стороны сервера поступают в формате html. Что если этот формат был в json, что нам нужно изменить здесь, чтобы адаптировать его к ответу на стороне сервера json? [/ОБНОВИТЬ]
Спасибо, MEM
2 ответа
В ответ на 1) вы уверены, что это означает "" (двойные кавычки, двойные кавычки), а не "" "(одинарные кавычки, двойные кавычки, одинарные кавычки).
Это будет иметь больше смысла, так как вы будете ухаживать за inputString
является. (Например, если входная строка 'привет', ваша строка будет queryString: "hello"
Я думаю, что выше происходит то, что вы добавляете и добавляете пустые строки к inputString
,
Я не совсем уверен, что вы спрашиваете с помощью (2), но в целом хранение данных JSON в скрытом вводе является общепринятой практикой. Оттуда вы можете использовать анализатор JSON, чтобы превратить его в объект JavaScript для использования.
Изменить: я сделал макет jsfiddle, если вы хотите посмотреть: http://jsfiddle.net/gRQMy/5/
Вам нужны двойные кавычки, чтобы закрыть строку, затем добавить переменную и снова открыть строку
Вы можете вернуть json, используя что-то вроде примера на сайте jquery.
$.post("rpc.php", { "querystring": ""+inputstring+"" },
function(data){
alert(data); // Json
}, "json");