Как передать код html из php в js

371
16 января 2017, 22:17

Есть код, он из селекта отправляет текст в js, из js в php для обработки и из php обратно в js. Как мне вывести в form-control текст, полученный из php.

var str = $(this).serialize();
$.ajax(
{
   type: "POST",
   url: "check.php",
   data: str+"distance="+inputText,
   success: function(msg)
   {
      //тут нужно вывести из php текст '<option value="0">Москва1</option>'
      $(".form-control").prepend( $('<option value="0">Москва1</option>'));
   }
});

Если я напрямую без php сделаю

$(".form-control").prepend( $('<option value="0">Москва1</option>'));

То, option добавляется к селекту, пробовал

$(".form-control").prepend(msg);

Селект пуст. В самом php делаю

echo '<option value="0">Москва1</option>';
Answer 1

Используйте JSON для обмена данными между JS и PHP. В JS формируйте объект который в PHP распарсите стандартной функцией. Обработанные данные также верните из PHP в JSON. и потом вставьте их в нужные места.

В JS (отправка данных):

$.ajax({
type: 'POST',
url: 'check.php',
data: '{"str": str}', 
success: function(data) { 
  $(".form-control").prepend( $('<option value="0">'+ data.city +'</option>'));
},
contentType: "application/json",
dataType: 'json'
});

а также можете воспользоваться сокращенной функцией

$.post( 'check.php', { 'string': 'str' }, function(data) { 
      $(".form-control").prepend( $('<option value="0">'+ data.city +'</option>'));
}, 'json');

В PHP для обработки JSON используйте json_decode($json), а потом, для отправки данных обратно, json_encode($array).

В самом PHP прочитать переданное можно так

$string = filter_input(INPUT_POST, 'str', FILTER_SANITIZE_SPECIAL_CHARS);
Answer 2

Экзотический метод без сторонних библиотек

document.getElementById("script").src="http://ya.ru/file.php";

в file.php echo "alert('lol');";

Если нужно, в src можно дописать параметры для get запроса

READ ALSO
Отмена события щелчком мыши

Отмена события щелчком мыши

При наведении указателя мыши объект появляется, при отведении указателя мыши объект удаляетсяПрименил функцию off чтобы, при нажатии объект...

355
Тестирование nodejs (express) приложения

Тестирование nodejs (express) приложения

Хочу спросить ваше мнение, у меня есть 2 сущности: Роуты

286
Альтернатива .delay()

Альтернатива .delay()

Насколько я понимаю,delay() не работает с

385
Замыкание в JavaScript [дубликат]

Замыкание в JavaScript [дубликат]

На данный вопрос уже ответили:

349