JS оповещение в PHP как часть приложения AJAX - PullRequest
1 голос
/ 04 августа 2010

У меня есть файл PHP, который вызывается для заполнения DIV через ajax. Все работает хорошо и прекрасно, за исключением того, что я не могу на всю жизнь получить всплывающее окно с предупреждением JS из PHP.

Вот что я использую для тестирования (это относится к концу PHP, я также пробовал это в начале, в середине и т. Д.):

 echo "does this show up?";
 echo "<script language='javascript'>alert('thanks!');</script>";  

"это появляется?" повторяется, и я вижу JS в codeinspector, но нет окна предупреждения. Если я возьму этот код и брошу его в свой собственный файл PHP (чтобы он больше не встраивался как часть более крупного приложения ajax), он работает просто отлично.

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 04 августа 2010

Отправка обратно блока script через AJAX - это неправильный способ сделать это. Вместо этого вы должны вернуть значение (вероятно, JSON, используя json_encode , а затем декодировать, используя javascript библиотеку JSON ), а затем вызвать оповещение из вашего скрипта.

Например, что-то вроде этого (не проверено, но вы поняли):

PHP:

echo json_encode(Array('OperationSucceeded' => 'true', 'Message' => 'test'));

Javascript:

retValObj = JSON.parse(retVal);
if (retValObj.Message != null) {
    alert(retValObj.Message);
}
0 голосов
/ 04 августа 2010

JavaScript анализируется один раз при загрузке страницы.Поэтому, если вы поместите этот код на страницу, он будет работать нормально ... Браузер не выполняет синтаксический анализ содержимого, загруженного ajax ... но мы можем выполнять вызовы функций javascript из содержимого, загруженного ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...