ФорумПрограммированиеJavaScript → выводит в алерте слово "alert"

выводит в алерте слово "alert"

  • bryda

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 22 февраля 2010 г. 19:27, спустя 55 минут 53 секунды

    камрады подскажите пожалуйста,

    имеется следущий код php
    $table_rows="";
    $table_cols="";

    $tmp=explode("\n",$row[price_table]);
    $j=0;
    $s="";
    while (list($k,$v)=each($tmp)) if ($v) {
     $s.=ereg_replace("[\n\r]","",trim($v))."|";
     $tmp2=explode("\t",$v);
     if ($k==0) {
       for ($i=1;$i<count($tmp2);$i++) {
         $table_cols[$i-1]=$tmp2[$i];
         }
       } else {
       $table_rows[$j]=$tmp2[0];
       $j++;
       }
     }


    тоесть мы достаем данные из $row и обрабатываем их

    потом с помощью jquery их передаем в Javascript в формате XML
    $text="<allregs>
    <table_cols>".$table_cols."</table_cols>
    <table_rows>".$table_rows."</table_rows>
    </allregs>";
    // Output:
    header("Content-Type: text/xml");
    print('<?xml version="1.0" encoding="utf-8" standalone="yes"?>');
    print($text);


    и обрабатываем их следущим образом:

    var table_cols = $(data).find('table_cols').text();
    var table_rows = $(data).find('table_rows').text();

    alert(table_rows);
    alert(table_cols);


    Почему в алерте вылазит слово "array"? И при вставке занчений в select вставляется за место масива слово array?

    Другие перменные нормально передаются, в том числе и одномерный масиив $s
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 22 февраля 2010 г. 18:32, спустя 23 часа 4 минуты 7 секунд

    про массивы почитайте
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 22 февраля 2010 г. 20:36, спустя 2 часа 4 минуты 24 секунды

    price_table
    Не слишком рано?
  • bryda

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 22 февраля 2010 г. 22:19, спустя 1 час 42 минуты 48 секунд

    Frozzeg, что именно почитать?

    Честно ни как не могу понять… почему именно выводиться алерт со словом array, при обращии к элементам масиива т.е. table_rows[2] выводиться "r" и table_rows[4] выводиться "a"




    Ewg777
    нет, т.к. в переменной $row храниться результат запроса к бд.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 22 февраля 2010 г. 22:44, спустя 24 минуты 59 секунд

    bryda, ты нам не искодники свои давай, а локализуй проблему.
    Первое посмотри, что конкретно формирует PHP. Может быть совсем не то, что ты ожидаешь? А потом уже смотри, как обрабатывает это JS.
    Пойми какая часть работает неправильно и тогда уже велком в форум, в соответствующий раздел.
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 23 февраля 2010 г. 8:51, спустя 10 часов 7 минут 28 секунд

    потом с помощью jquery их передаем в Javascript в формате XML
    $text="<allregs>
    <table_cols>".$table_cols."</table_cols>
    <table_rows>".$table_rows."</table_rows>
    </allregs>";
    // Output:
    header("Content-Type: text/xml");
    print('<?xml version="1.0" encoding="utf-8" standalone="yes"?>');
    print($text);

    Вот тут и зарыто, у тебя $table_cols и $table_rows массивы, при приведении массива к строке php вместо содержимого массива отдаёт строку "Array", нужно делать как-то так:
    $text = '<allregs><table_cols>';
    foreach ($table_cols as $id => $col)
    {
    $text .= '<column id="column_' . $id . '"><![CDATA[' . $col . ']]></column>';
    }
    $text .= "</table_cols><table_rows>";
    foreach ($table_rows as $id => $row)
    {
    $text .= '<row id="row_' . $id . '"><![CDATA[' . $row . ']]></row>';
    }
    $text .= '</table_rows></allregs>';
    // Output:
    header("Content-Type: text/xml");
    print('<?xml version="1.0" encoding="utf-8" standalone="yes"?>');
    print($text);
    Work, buy, consume, die
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 23 февраля 2010 г. 10:58, спустя 2 часа 6 минут 21 секунду

    Ewg777 нет, т.к. в переменной $row храниться результат запроса к бд.
    Вы о чём?
  • ЗлобныйТролль

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 24 февраля 2010 г. 17:54, спустя 1 день 6 часов 56 минут


    1. Выкинь XML, юзай JSON

    2. слово "Array" появляется, по причине того, что:
    echo array(1,2,3);


    3. $s - это какбэ строка.

  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 24 февраля 2010 г. 18:49, спустя 54 минуты 57 секунд

    1. Выкинь XML, юзай JSON 

    в тему. Меня одного бесит реализация функции json_encode в php?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 24 февраля 2010 г. 19:02, спустя 13 минут 3 секунды


    1. Выкинь XML, юзай JSON 

    в тему. Меня одного бесит реализация функции json_encode в php?
    чем бесит?
    Сапожник без сапог
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 24 февраля 2010 г. 20:26, спустя 1 час 23 минуты 51 секунду

    phpdude, к примеру тем, что она кодирует русские буквы. Нахуй спрашивается? Не уверен, но вроде как аякс работает в тока ютф-8 (во всяком случае слышал чета такое). Функция тоже тока в ютф.
    Еще и кавычки не всегда правильно жс обрабатывает в ие8.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 24 февраля 2010 г. 21:10, спустя 44 минуты 43 секунды

    Еще и кавычки не всегда правильно жс обрабатывает в ие8.
    это уже проблема ебанутого браузера.

    она кодирует русские буквы.
    для совместимости я думаю, я бы тоже кодировал
    Спустя 230 сек.
    ну я бы галочкой на самом деле сделал типа "$Encode = true"
    Сапожник без сапог
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 24 февраля 2010 г. 21:20, спустя 9 минут 47 секунд

    это уже проблема ебанутого браузера.

    Это моя проблема, так как заказчика не устраивает. Почему в ие плеер не работает? Пришлось писать простенькую функцию для преобразования массива в в данном случае.
    ну я бы галочкой на самом деле сделал типа "$Encode = true"

    +1

Пожалуйста, авторизуйтесь, чтобы написать комментарий!