2012-05-24 1 views
-1

Если у меня есть два (или более) ajax-вызова на моей странице, ajax1 и ajax2, я делаю один общий URL-адрес цели ajax.php, который условно возвращает строку или делает Я делаю целевую php-страницу за вызов, ajax1.php и ajax2.php?Одна целевая страница для всех вызовов ajax или одна для каждого

ответ

1

Вы можете использовать только один основной PHP-скрипт для обработки всех ваших вызовов AJAX и просто добавить дополнительный параметр к вашему запросу, указав, какой ответ вам нужен.

$.post('/ajaxResponser.php',{'method':'getData','user_id':'123'},function(response){ 
    // handle response 
},"json"); 

Тогда в вашем ajaxResponser.php вы бы решить, какой метод для вызова в соответствии с method параметром, который был принят -

$method = $_REQUEST['method']; 
$user_id = $_REQUEST['user_id']; 
switch($method){ 
    case 'getData': 
    echo json_encode(array('data'=>getData($user_id))); 
    break; 
    default: 
    echo json_encode(array('err'=>'unknown method')); 
    break; 
} 
+1

что было бы наилучшей практики? Одна целевая страница или многие? – mmzc

+1

Все зависит от вашей логики и реальных методов, которые вы используете. Если у вас много методов для вызова, вы можете рассмотреть возможность их разделения на несколько файлов. Один для пользовательских действий, одна новость, одна для онлайн-пользователей ... Только некоторые примеры ... Лучшая практика заключалась бы в том, чтобы убедиться, что если у вас несколько целевых страниц - их имена будут значимыми; То же самое относится к именам методов. Все зависит от того, что вы делаете ... Убедитесь, что следующий программист, который приходит посмотреть ваш код, может легко понять, где находится каждый метод, и в каком файле ... – Lix

2

просто сделать одну страницу PHP и в вашем все Ajax функции делают переменную флаг в строка данных, как «& ajax1 =» + «1» и на странице использования PHP, если состояние как

if($_REQUEST['ajax1']){ 
your code 
    } 
if($_REQUEST['ajax2']){ 
your code 
    } 
Смежные вопросы