Отправка переменных на сервер с помощью MagicSuggest
Я использую этот замечательный плагин JQuery для обработки автозаполнения на текстовых полях, я получил все работает с помощью этого сценария:
var ms1;
$(document).ready(function() {
ms1 = $('#ms1').magicSuggest({
data: 'http://punctis.com/app_dev.php/ajax/autocompletefeed/1/city',
sortOrder: 'name',
minChars: 2,
maxResults: false,
allowFreeEntries: false,
selectionPosition: 'right',
groupBy: 'utenti',
maxDropHeight: 200
});
});
И этот HTML:
<form name="email_form">
<input id="test_normalValue" name="test_normalValue" type="text" class="input-large">
<input id="ms1" name="ms1" type="text" class="input-large">
</form>
Но когда я отправляю или получаю форму, никакое значение не отправляется, только test_normalValue. Кто-нибудь тоже сталкивался с этой проблемой?
PS: Согласно этой теме эта функциональность присутствует начиная с 1.1.2 (я использую 1.2.3)
1 ответ
Вам необходимо добавить свойство name в вашу конфигурацию:
var ms1;
$(document).ready(function() {
ms1 = $('#ms1').magicSuggest({
data: 'http://punctis.com/app_dev.php/ajax/autocompletefeed/1/city',
sortOrder: 'name',
minChars: 2,
maxResults: false,
name: 'ms1',
allowFreeEntries: false,
selectionPosition: 'right',
groupBy: 'utenti',
maxDropHeight: 200
});
});
и вы должны получить значение в $_POST['ms1'], которое на самом деле будет массивом городских идентификаторов.
[РЕДАКТИРОВАТЬ] Если вам нужны названия городов вместо идентификаторов городов, вы можете указать значение valueField в свойстве конфигурации и установить для него значение "name", например:
var ms1;
$(document).ready(function() {
ms1 = $('#ms1').magicSuggest({
data: 'http://punctis.com/app_dev.php/ajax/autocompletefeed/1/city',
sortOrder: 'name',
valueField: 'name',
minChars: 2,
maxResults: false,
name: 'ms1',
allowFreeEntries: false,
selectionPosition: 'right',
groupBy: 'utenti',
maxDropHeight: 200
});
});
Таким образом, компонент будет использовать имена в качестве идентификаторов, а не сами идентификаторы.
Если по какой-либо причине вам нужны и идентификаторы, и имена, вы можете использовать событие beforeload для установки дополнительных пользовательских параметров POST.