вызвать функцию php с аргументами с помощью JQuery

У меня есть php-файл func.php где я определил многие функции, скажем:

 <? php function func1($data){ return $data+1; } ?> 

Я хочу вызвать function func1 с помощью ajax . спасибо за помощь

Related of "вызвать функцию php с аргументами с помощью JQuery"

Вы не можете вызвать функцию PHP непосредственно из вызова AJAX, но вы можете сделать это:

PHP:

 <? php function func1($data){ return $data+1; } if (isset($_POST['callFunc1'])) { echo func1($_POST['callFunc1']); } ?> 

JS:

 $.ajax({ url: 'myFunctions.php', type: 'post', data: { "callFunc1": "1"}, success: function(response) { alert(response); } }); 

Вы должны вызвать свой php-скрипт через запрос ajax, используя jquery, например:

Javascript:

 $.ajax({ url: "script.php", data: { param1: "value1", param2: "value2" }, type: "GET", context: document.body }).done(function() { // your code goes here }); 

Вы можете указать свои параметры через свойство данных объекта ajax.

Php

 // you can do isset check before $param1 = $_GET['param1']; $param2 = $_GET['param2']; // validate // sanitize // save to db // blah blah // do something with params 

Более подробную информацию вы можете получить из описания функции jQiery.ajax () из http://api.jquery.com/jQuery.ajax/

Это немного сложнее, но я постараюсь свести его к основам.

Вам потребуется какой-то интерфейс (соглашение, в основном) между вызывающим и вашим скриптом. Основные проблемы здесь:

  1. То, как ваш скрипт понимает, что нужно назвать и с какими аргументами. Предположим, вы решили использовать GET запрос для вызова функции. Имя функции может быть в поле func и аргументах в args one, как строка, разделенная символом ; , Другими словами, вызов funcFoo(5,'bar') будет выполняться путем запроса func.php?func=func1&args=5;bar .

  2. Способ, которым вызывающий абонент получает (и понимает) возвращаемое значение. Поскольку ваши требования ориентированы на js, подход JSON будет очень уместным.

Добавьте следующий код вместе со своими функциями:

 if(isset($_GET['func'])) { $func=$_GET['func']; if(function_exists($func)) { $args=(isset($_GET['args'])?explode(';',$_GET['args']):array()); $result=call_user_func_array($func,$args); } else $result=array('error'=>"Unknown Function $func!"); } else $result=array('error'=>"No function name provided!"); echo json_encode($result); 

Однако ваши функции также должны быть изменены в соответствии с новыми требованиями. Поскольку нет способа сообщить, сколько аргументов будет подано вызывающим, функция должна быть сконструирована так, чтобы не принимать никаких обязательных аргументов и проверять сами поставляемые. Кроме того, он должен всегда возвращать массив, чтобы быть json_encode d, прежде чем он будет возвращен вызывающему.

Например, ваша примерная функция должна выглядеть примерно так:

 function func1(){ $data=func_get_args(); if(count($data)) // at least one -- rest will be ignored return $data[0]+1; else return array('error'=>__FUNCTION__."() expects an argument!"); } 

Имейте в виду : это всего лишь скелет, который поможет вам начать всю концепцию. Необходимо уделять больше внимания как отказоустойчивости, так и безопасности . Но это тема другой темы.