2013-02-28 3 views
1

;-) У меня есть кирпичная стена. Сегодня я впервые встретил Аякса в своей жизни. И я понимаю, что мой вопрос может показаться очень глупым. Но мне нужна твоя помощь.AJAX Функция загрузки от php

У меня есть файл php (например, index.php), он содержит include (function.php). В файле function.php У меня есть функция (например, function Jokes(){....}).

Я хочу использовать AJAX для загрузки этой функции на свою страницу. Но я не знаю, как это сделать ... :-(

Я нашел несколько простых решений (я использую функцию загрузки Jquery), но это не то, что я хочу, потому что я должен использовать отдельный файл.

$('#jokes').load('jokes.php'); 

Но мне нужно что-то вроде:

$('#jokes').load('function.php','jokes()'); 

Любая помощь или идеи следует принять во внимание

PS:. Извините за мой плохой английский ...))

ответ

2

Что вы можете сделать, это сделать один файл AJAX, например. ajaxfunctions.php, где вы делите функции.

$('#jokes').load("ajax.php", { 'function': 'jokes' }); 

В вашем PHP файл ajax.php вы можете сделать это:

<?php 
include 'function.php'; 
if (isset ($_POST['function']) && $_POST['function'] == 'jokes') 
{ 
    echo jokes(); 
} 
?> 

ли это поможет?

+0

Yahoo !!! Вы гений, вот чего я хотел. Удивительно! Большое спасибо! – Jerome

0

Браузер (и, следовательно, Ajax) может обрабатывать HTTP-запросы только на сервере.

Он не может выполнять определенные функции.

Вам нужно будет написать код на стороне сервера, который распознает конкретный URL-адрес (например, сценарию, который вызывает только эту функцию, или скрипту, который решает, какую функцию запускать на основе строки запроса) и выполнить определенную функцию в ответ на запрос к нему.

0

Нет, это невозможно сделать так. Вы должны подать запрос на URL-адрес. Вы не можете просто вызвать определенную функцию из php-файла.

Создайте оболочку для функции, которая вам нужна.

0

Не делайте этого. Ajax используется для отправки или получения данных, но то, что вы пытаетесь сделать, - загрузить функцию Javascript, определенную в файле PHP (не так ли?). Вместо этого просто определите свою функцию Javascript в JS-файле и загрузите ее через скрипт (или, если она должна быть загружена динамически, вы можете использовать загрузчик AMD, такой как require.js)

Если вы хотите загрузить PHP функции в JS, то это невозможно. Однако вы можете вызвать эту функцию и получить ее результат.

0

Это не работает.

$('#jokes').load('jokes.php'); 

делает http-запрос к jokes.php. Если вы хотите, чтобы выполнить определенную функцию, вы можете использовать параметр, например:

$('#jokes').load('jokes.php?func=jokes'); 

Ваш PHP скрипт, получить «FUNC» и выполнить надлежащую функцию.

... 
function jokes() { 
    return 'some output'; 
} 

... 
$func=''; 
if (!empty($_REQUEST['func'])) { 
    $func=$_REQUEST['func']; 
} 

if ($func=='jokes') { 
    echo jokes(); 
} 
0

Для этого вам не нужен AJAX. Вы хотите поместить функцию Jokes() в файл JavaScript, возможно, называемую Jokes.js, включить ее в index.php, а затем вызвать ее обычно в блоке JavaScript в index.php.

+0

'function Jokes' - почти наверняка ** функция PHP **, а не функция JavaScript. – Quentin

+0

Из синтаксиса это может быть функция JavaScript, однако, чтобы быть справедливым, неясно. –

Смежные вопросы