Как вывести данные из ajax?

194
21 сентября 2018, 02:50

уже долго колупаюсь, излазил все что только можно. Но не получается Имеется плагин ckeditor. В нем статически выводится информация в виде select Работает примерно это вот так:

Вот код этого участка:

id : 'hero', 
                                            type : 'select', 
                                            label : 'Выбери имя.', 
                                            items: [ [ 'Mamba', '1'],[ 'Lamba', '2'] ], 
                                            'default': '', 
                                            onChange: function( api ) { 
                                                // this = CKEDITOR.ui.dialog.select 
                                                alert( 'Current value: ' + this.getValue() ); 
                                            }

Здесь мы выводим имя в список и при выборе получаем его значение. Походу вместо вот этого:

function( api ) { 
// this = CKEDITOR.ui.dialog.select 
alert( 'Current value: ' + this.getValue() ); 
}

мне нужен ajax запрос. Собственно, в items мне нужны значения из ajax.

$.ajax({ 
                    url: '/heroes', 
                    success: function(data) { 
                        for (var key in data) 
                        { 
                            // data[key][1] data[key][0] - примерно такого вида. 
 
                        }

файл: heroes.php: не знаю куда выложить php код. Так что так.. https://codepen.io/anon/pen/zLwYjP

HeroesController.php: https://codepen.io/anon/pen/bjWGjV

Нужно чтобы подставлялось значение $array[$k][]=$heroes->name; так и html код так же который в $array[$k][] в datakey и data[key][0] Надеюсь смог мысль донести, уже отчаялся...

Answer 1

В запросе укажите

dataType: 'json'

В heroes.php выводите массив, как

echo json_encode($array);
Answer 2

Может кому пригодится, сделал вот так:

jQuery.extend({ 
    getValues: function(url) { 
        var result = null; 
        $.ajax({ 
            url: url, 
            type: 'get', 
            dataType: 'json', 
            async: false, 
            success: function(data) { 
                    result = data; 
                console.log(result) 
            } 
        }); 
        return result; 
    } 
}); 
var results = $.getValues('/heroes'); 
 
CKEDITOR.plugins.add( 'hero', 
    { 
        icons: 'hero', 
        requires : ['richcombo'], //, 'styles' ], 
        init : function( editor ) 
        { 
            editor.addCommand( 'abbrDialog', new CKEDITOR.dialogCommand( 'abbrDialog' ) ); 
            editor.ui.addButton( 'Hero', 
                { 
                    label: 'Выбрать героя', 
                    command: 'abbrDialog', 
 
                } ); 
 
            CKEDITOR.dialog.add( 'abbrDialog', function ( editor ) 
            { 
            
 
 
                return { 
                    title : 'Выбор героя', 
                    minWidth : 400, 
                    minHeight : 200, 
 
 
                    
 
                    contents : 
                        [ 
                            { 
                                id : 'tab1', 
                                label : 'Tenants', 
                                elements : 
                                    [ 
                                        { 
                                            type : 'select', 
                                            id : 'style', 
                                            label : 'Style', 
                                            setup : '', 
                                            items : results, 
                                            commit : function( data ) 
                                            { 
                                                data.style = this.getValue(); 
                                            } 
 
                                        } 
                                    ] 
                            } 
 
                        ], 
 
                    onOk : function() 
                    { 
                        var dialog = this; 
                        var abbr = editor.document.createElement( 'span' ); 
                        abbr.setHtml( dialog.getValueOf( 'tab1', 'style' ) ); 
 
                        editor.insertElement( abbr ); 
                    } 
 
                }; 
            } ); 
        } 
    });

READ ALSO
Как вывести все результаты с цикла?

Как вывести все результаты с цикла?

Как вывести все результаты с цикла?

180
Бот телеграмм не реагирует на команды

Бот телеграмм не реагирует на команды

Делаю бота по данной инструкции - https://djdiplomatru/kak-napist-telegram-bot-na-php Все создалось и зарегистрировал, вродебы без ошибок - но бот не реагирует на команды...

198
Выдает ошибку mysql_connect в PHP

Выдает ошибку mysql_connect в PHP

Как подключиться к БД?

174