Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как передать функцию и выполнить ее
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Как передать функцию и выполнить ее

Страниц (1): [1]
 

1. 3d_killer - 17 Апреля, 2014 - 09:26:52 - перейти к сообщению
есть такая функция:
PHP:
скопировать код в буфер обмена
  1.  
  2. function action(url, action, data_array, func)
  3.         {
  4.                
  5.                 loader();
  6.                 $.ajax({
  7.                 async:true,
  8.                 type: "POST",
  9.                 dataType: 'HTML',
  10.                 url: url,
  11.                 data: {action:action, data_array:data_array},
  12.                 success: function(data)
  13.                         {      
  14.                                 func(data);
  15.                         },
  16.                 error:function()
  17.                         {
  18.                                 alert("Произошла ошибка в процессе обработки, попробуйте еще раз!");
  19.                         },
  20.                 complete:function()
  21.                         {
  22.                                 close_loader();
  23.                         }
  24.                 });    
  25.         }
  26.  

как правильно в нее передать имя другой (func) и потом выполнить func(data);
это работать не будет просто набросал чтобы понятно было что я хочу сделать
2. LIME - 17 Апреля, 2014 - 09:59:57 - перейти к сообщению
в js области видимости работают не так как в php
если имени func не будет найдено в локальной области будет произведен поиск в родительской
и так пока не дойдет до глобальной
то есть существуют вложенные области видимости(и ф-ции) и специально имена можно не передавать
http://learn[dot]javascript[dot]ru/#book-toc-638
ПыСы: редирект снова хромает ссылку сам поправь
(Добавление)
и еще
в js ф-ции это такие же переменные как все другие
со своим типом
можно делать так
CODE (javascript):
скопировать код в буфер обмена
  1. function a(){...}
  2. var b = a;
  3. b();// скобки заставляют ф-цию выполнится...это типа оператор
соответственно передается прям ф-ция если что....не имя
(Добавление)
а var как раз означает что переменная привязана к локальной области видимости
чтоб не пересекаться с такой же если есть выше
3. 3d_killer - 17 Апреля, 2014 - 10:42:17 - перейти к сообщению
благодарю за подробный ответ буду пробовать
4. nerv - 19 Апреля, 2014 - 12:06:18 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. function action(..., action, ...)

не смущает?

CODE (javascript):
скопировать код в буфер обмена
  1. data_array

в js camelCase

форматируй свой код или никто не будет тебе помогать

Ответ на твой вопрос, скорее всего это:
CODE (javascript):
скопировать код в буфер обмена
  1. success: func

 

Powered by ExBB FM 1.0 RC1