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

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

  • bryda

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

    Spritz 22 февраля 2010 г. 11: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=&quot;<allregs>
    <table_cols>&quot;.$table_cols.&quot;</table_cols>
    <table_rows>&quot;.$table_rows.&quot;</table_rows>
    </allregs>&quot;;
    // Output:
    header(&quot;Content-Type: text/xml&quot;);
    print(&#39;<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot;?>&#39;);
    print($text);


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

    var table_cols = $(data).find(&#39;table_cols&#39;).text();
    var table_rows = $(data).find(&#39;table_rows&#39;).text();

    alert(table_rows);
    alert(table_cols);


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

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

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

    Spritz 22 февраля 2010 г. 10: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

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

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

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

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

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

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

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




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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

  • VaseninM

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

    +1

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