spesher
@spesher
Objective-C, iOS app Developer

В чем ошибка работы функции ajax_encode в php и вывод символов \n\t\t\t\t?

Доброго времени суток.
Столкнулся с проблемой вывода через функцию ajax_encode(). Вместо ожидаемого результат мне выводит краказябру с символами типа \n\t\t\t\t.
Что не так я делаю? В чем там ошибка? Пробовал делать var_dump ничего подозрительно не было, пробовал отслеживать ошибки - тоже ничего. Так в чем тогда дело?

Это то, что я ожидаю получить.
da64af3c4c0443d5a031e34b54efad06.png

А вот это, то что я получаю с выводом json_encode
7af6898bd9fd451cb554cc43ab7600d9.png

Это скриншот кода php
1fe10c24c2254690aa1f1e5ccc386a5e.png

Это код php в тексте:
if($message['user_id'] == $loggedUser->id)
			{

			 $messages_container[] = "<li class='media media-current-user m-b-md conversation_i_sender_block conversation_container_text'>
			    <div class='media-body'>
			      <div class='media-body-text conversation_i_sender_text conversation_container_text'>
			      	<span class='pull-right delete_message fa fa-trash' data-dialog-id='".$message['dialog_id']."' data-message-id='".$message['id']."'></span>".$message['text'].$ifHasImg."
			      </div>
			      <div class='media-footer'>
			        <small class='text-muted'>
			           <a href='profile.php?user=".$user_items['username']."'>".$user_items['firstname']." ".$user_items['lastname']."</a> ".$message['day']." ".$pubMonth." ".$message['year']." в ".$message['hours'].":".$message['minutes']."
			        </small>
			      </div>
			    </div>
			    <a class='media-right' href='profile.php?user=".$user_items['username']."'>
			      <img class='img-circle media-object conversation_avatar' src='matroskin.jpg'>
			    </a>
			  </li>";					  

	  		}
	  		
	  		if($message['user_id'] == $with_user)
	  		{
	  		
			 $messages_container[] = "<li class='media m-b-md conversation_i_receiver_block conversation_container_text'>
			    <a class='media-left' href='profile.php?user=".$user_items['username']."'>
			      <img class='img-circle media-object conversation_avatar' src='matroskin.jpg'>
			    </a>
			    <div class='media-body'>
			      <div class='media-body-text conversation_i_receiver_text'>
			      	<span class='pull-right delete_message fa fa-trash' data-dialog-id='".$message['dialog_id']."' data-message-id='".$message['id']."'></span>".$message['text'].$ifHasImg."
			      </div>
			      <div class='media-footer'>
			        <small class='text-muted'>
			           <a href='profile.php?user=".$user_items['username']."'>".$user_items['firstname']." ".$user_items['lastname']."</a> ".$message['day']." ".$pubMonth." ".$message['year']." в ".$message['hours'].":".$message['minutes']." 
			        </small>
			      </div>
			    </div>
			  </li>";
	  		}		
	  }
	  
	 echo json_encode($messages_container);


Может проблема в jquery коде?
Я эти данные выбираю через функцию load()
Вот тут код ниже:

$(".media-list-conversation").load("ajax/upload_message.php",{ action : true, talking_with : "<? echo $_GET['talking_with']; ?>" });
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
spesher
@spesher Автор вопроса
Objective-C, iOS app Developer
В общем проблему решил использовав функцию $.ajax();
Вот как выглядит код:

$.ajax({
		type: "POST",
		dataType: "json",   // этот параметр добавил и проблему исправило...
		url :"ajax/upload_message.php",
		data : { action : true, talking_with : "<? echo $_GET['talking_with']; ?>" },
		success : function(datas)
		{
			$(".media-list-conversation").html(datas);
		}
});


Уже работает как надо.
Спасибо всем.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
atnartur
@atnartur
Веб-разработчик
\t - это таб.
\n - перенос.
Ищите, откуда они у вас берутся. А выводить html код из PHP - плохая практика. Используйте шаблонизаторы.
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега PHP
Посмотрите на данные которые получаете по ссылке
ajax/upload_message.php
Ответ написан
coderisimo
@coderisimo Куратор тега JavaScript
в json_encode попробуйте добавить - "JSON_UNESCAPED_UNICODE"
php.ru/manual/function.json-encode.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы