Как выполнять различные действия JS в зависимости от результата AJAX? - PullRequest
2 голосов
/ 15 февраля 2011

Я пытаюсь сделать некоторые вещи ajax, которые, в основном, в зависимости от результатов в возвращаемом файле (файл php), у нас в javascript разные действия.

Например, скажем, я делаюследующее:

  $.ajax({
    type: 'POST',
    url: '/something.php',
    data: 'something=something',
    cache: false,
    success: function(data) {
      $('#something').html(data);
    }
  });

мой что-то div вернет что-то, если это удастся.Внутри'thing.php ', однако, может быть выражение if, например:

if($_POST['something'] == 'not_something') {

    // execute something here

} else {

    // do something else

}

Дело в том, что я выполняю, в зависимости от результатов будет JavaScript, а не PHP-код,Например, в настоящее время я могу добиться этого, сделав что-то вроде этого:

if($_POST['something'] == 'not_something') {

    echo '<script type="text/javascript">thissucks();</script>';

} else {

    echo '<script type="text/javascript">atleastitworks();</script>';

}

Но мне это просто не кажется правильным.Есть ли лучший способ добиться такого рода вещей?

Другим сценарием может быть, возможно, функция поиска ajax, которая делает что-то другое в зависимости от того, есть результаты или нет.Такого рода вещи.Как это сделать, не выполняя какой-то действительно классный встроенный javascript, как я делал выше?

1 Ответ

3 голосов
/ 15 февраля 2011

Вы можете использовать PHP json_encode для форматирования массива, который возвращает инструкцию функции jQuery $.ajax(). Такие как это:

<?php

if($_POST['something'] == 'not_something') {
    echo json_encode(array('status'=>'thissucks'));
}

В какой момент ваша $.ajax() анонимная функция для литерала объекта успеха выглядит следующим образом:

$.ajax({
    type: 'POST',
    url: '/something.php',
    date: 'something=something',
    cache: false,
    dataType: 'json', //this is important!
    success: function(data) {
      if(data['status']=='thissucks'){
         //do something here
      }
    }
  });

Удачи!

UPDATE Забыл важный атрибут типа данных, чтобы сделать его eval () json!

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