Выбор загрузки PHP-массива в настройках с использованием AJAX
Кажется, я не могу узнать, как получить результаты моего PHP-запроса в опциях Selectize. Я новичок в использовании AJAX, так что терпите меня:)
Когда параметры загружаются вручную, и я набираю адрес электронной почты, результаты видны:
options: [
{email: 'test@testcom'}
],
Теперь мне нужен тот же результат, но динамически. Что мне нужно сделать, чтобы получить массив PHP в этом поле параметров? Я использовал json_encode, чтобы преобразовать его в JSON. Можно ли сделать переменную javascript из переменной php? Я надеюсь, что этой информации достаточно, если нет, скажите, пожалуйста, что мне нужно добавить.
Это код, который я создал для Selectize:
$('.emailsearchreceiver').selectize({
persist: false,
maxItems: null,
valueField: 'email',
searchField: ['email'],
options: [{email: 'test@testcom'}],
render: {
item: function(item, escape) {
return '<div>' +
(item.email ? '<span class="email">' + escape(item.email) + '</span>' : '') +
'</div>';
},
option: function(item, escape) {
var caption = item.email;
return '<div>' +
(caption ? '<span class="caption">' + escape(caption) + '</span>' : '') +
'</div>';
}
},
createFilter: function(input) {
var match, regex;
// email@address.com
regex = new RegExp('^' + REGEX_EMAIL + '$', 'i');
match = input.match(regex);
if (match) return !this.options.hasOwnProperty(match[0]);
// name <email@address.com>
regex = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i');
match = input.match(regex);
if (match) return !this.options.hasOwnProperty(match[2]);
return false;
},
create: function(input) {
if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) {
return {email: input};
}
var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'));
if (match) {
return {
email : match[2],
name : $.trim(match[1])
};
}
alert('Invalid email address.');
return false;
}
});
Это код, который я создал для получения адресов электронной почты:
$query = $this->Transfer->query( "SELECT DISTINCT emailaddresses.emailaddress
FROM transfers
JOIN emailaddresses ON (emailaddresses.transfer_id = transfers.transfer_id AND emailaddresses.type <> 'SENDER')
WHERE transfers.created_user_id = $user_id " );
if(!$query)
{
//die connection
}
//place all email addresses in an empty array
foreach ( $query as $results => $r )
{
$emailaddresses[] = $r['emailaddresses']['emailaddress'];
}
json_encode($emailaddresses);