Передать в ajaxupload данные в формате json ?

Тема в разделе "JavaScript", создана пользователем sunyang, 22 мар 2012.

Модераторы: ZiX
  1. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    сделал загрузчик файлов с помощью библиотеки Ajax-Upload.

    На стороне клиента скрипт:
    HTML:
    
    </script>
    $(document).ready(function() {
        $('#imgloader').hide();
     
        // ajax uload >>
        new AjaxUpload('upload_button', {
                        action: 'upload.php',
                        name: 'userfile',
                        onSubmit: function(file, extension) {
                            $('#imgloader').show();
                            $('#upload_button').text('Загрузка...');
                            this.disable();
                            },
                        onComplete : function(file, response) { //onComplete
                            $('#imgloader').hide();
                            $('#upload_button').text('Загрузить');
                         
                                if(response==="success"){
                            $('#info').text("Fail zagrugen");
                            $("<br><b>" + file + "</b>").appendTo("#filename");
                            this.enable();
                                                        }
                                                        else { $('#info').text("Oshibka zagruzki"); }
                                                   
                        }//onComplete
                   
        });
        // << ajax uload
     
     
    });
    </script>
     
    <div id="info"></div><br />
    <img src="ajax-loader.gif" id="imgloader" /><div id="upload_button">Загрузить изображение</div><br />
     
    Загружен файл: <div id="filename"></div>
    
    при удачной загрузке php скрипт отправляет:
    echo "success";
    а при ошибке echo "error";

    Тобишь onComplete принимает только два ответа сервера: "success" (при удачном выполнении) и "error" (при неудачном)

    НО:
    мне надо передать от сервера не только "error" или "success" а несколько данных.

    Для этого я в php скрипте отдаю данные в формате JSON:

    PHP:
    $arr = array('a' => $perem'b' => array('aa' => 'massiv v massive <br> Dannie v formate JSON iz upload.php'), 'c' => 3'd' => 4'e' => 5);
     
    echo 
    json_encode($arr);
    НО как принять JSON в AjaxUpload ?
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.517
    Симпатии:
    1.368
  3. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    узнал. это решается намного проще: responseType: "json"
    обращение к содержимому в таком случае будет: alert(response.b.aa)
    в объекте будет содерзаться значение из массива в php 'massiv v massive <br> Dannie v formate JSON iz upload.php'