Мне знакомо, как получить ajax, чтобы перейти на php-страницу, выполнить ряд вещей, а затем вернуть данные json. Однако можно ли вызвать определенную функцию, которая находится на данной странице?
В основном я хочу уменьшить количество файлов в проекте. Поэтому я могу разместить множество общих функций на одной странице, а затем просто вызвать любую функцию, которую я хочу в данный момент.
Для запроса ajax
1. Внесите JQuery Library на свою веб-страницу. например:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
2.Задать функцию при нажатии кнопки
<button type="button" onclick="create()">Click Me</button>
3.Но нажав на кнопку, вызовите функцию create в javascript.
<script> function create () { $.ajax({ url:"test.php", //the page containing php script type: "post", //request type, dataType: 'json', data: {registration: "success", name: "xyz", email: "abc@gmail.com"} success:function(result){ console.log(result.abc); } }); } <script>
В файле test.php на стороне сервера должен быть прочитан параметр POST действия и соответствующее значение и выполнить действие в php и вернуться в json-формате, например
$regstration = $_POST['registration']; $name= $_POST['name']; $email= $_POST['email']; if ($registration == "success"){ // some action goes here under php echo json_encode(array("abc"=>'successfuly registered')); }
Вы не можете вызвать функцию PHP непосредственно из вызова AJAX, но вы можете сделать это:
<? php function test($data){ return $data+1; } if (isset($_POST['callFunc1'])) { echo test($_POST['callFunc1']); } ?> <script> $.ajax({ url: 'myFunctions.php', type: 'post', data: { "callFunc1": "1"}, success: function(response) { console.log(response); } }); </script>
Если я правильно понимаю, да, вы можете. Поместите все свои функции в один файл php и получите пропуск ajax в качестве параметра, который вы хотите вызвать. Затем с помощью переключателя или структуры, выполните тот, который вы хотите.