За последние 24 часа нас посетили 16864 программиста и 1291 робот. Сейчас ищут 1469 программистов ...

PHP + AJAX + JSON

Тема в разделе "JavaScript и AJAX", создана пользователем donvasin, 22 июн 2014.

  1. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    Посылаю post запрос и в обратку получаю json массив.
    Скрипт PHP, которому посылаю запрос, обрабатывает данные и потом формирует их прогоняя через различные функции, включая nl2br().
    Потом через JQuery вставляю полученные данные с помощью html()
    Итог примерно такой:

    Код (Text):
    1. Да, это пост со ссылкой и всякой тестовой хренью
    2. ССсылка http://lalala.com и http://bububu.ru\r\n\r\n #хочу #порше\r\n\r\nМой твиттер @lalala
    Собственно, вместо <br> все равно выводится \r\n
    Не бейте за то, что весь инет не облазил. Надеюсь на вашу помощь. Спасибо :)
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Код обработки текста в студию.
    Угадывать, что именно ты делаешь и как, никто не будет.
     
  3. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    Весь код обработки смысл нет кидать, не работает даже так:

    Код (Text):
    1. $success['text'] = nl2br($text);
    2. $success = json_encode($success);
    3. echo $success;
    Если еще дописать $success = str_replace('\r\n', '<br>', $success); после json_encode()
    \r\n не меняется ни в какую на <br>
    Хотя в отдельном файле все ок. Чудеса ..
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Есть смысл, т.к. не ясно, что у тебя в $text. Сделай var_dump($text), там точно строка?
    И вот это не сработает
    Код (PHP):
    1. str_replace('\r\n', '<br>', $success);
    , т.к. ищется последовательность \r\n (4 символа), нужно в двойные кавычки взять "\r\n".
     
  5. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    YSandro, в $text точно строка из <textarea>.. По поводу str_replace, уже перепробовал все что можно, не меняет никак последовательность \r\n . Хотя если просто попробовать поменять отдельно r или n - все ок. Бред какой то.
     
  6. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Ну и что, что строка из textarea? Она может быть в любом виде. Какие-нибудь обратные слеши. Раз тебя приходится упрашивать, чтобы тебе же помочь, то сам себе помогай.
     
  7. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    YSandro, ты не понял, я var_dump делал, к примеру у строки после nl2br() он возвращает это:
    Код (Text):
    1. string(70) "Тестовое сообщение<br />Перенос строки"
    До nl2br() возвращает:
    Код (Text):
    1. string(64) "Тестовое сообщение Перенос строки"
    А после json_encode и получении post запросом все равно возвращается
    Код (Text):
    1. "Тестовое сообщение\r\nПеренос строки"
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Автор, ты ошибся, форум битвы экстрасенсов на другом адресе. Тебя ясно попросили - дай не свои идеи, мысли и догадки, а КОД.
     
  9. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    Фуф, разобрался)))
    Дело было в том, что в самом начале скрипта я прогонял $text через mysql_real_escape_String() и еще кучу всего, т.к. функция админская, просто отключил real_escape, все остальное оставил, и все стало ок. Ох.. убил на это 5 часов, пипец) всем спасибо за содействие!
     
  10. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    О чём и речь. Ты мог в первом же сообщении в 12:46 Мск написать код, а не мучить себя и других до 15:23.
     
  11. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    YSandro, согласен. Думал это какая то распространенная ошибка. Оказалось это ошибка моя)