Запустить php-функцию внутри jQuery

Как запустить функцию PHP внутри события jQuery click. У меня есть следующее, что неверно. когда пользователь нажимает на кнопку, я хочу, чтобы новое создавалось напрямую.

$('button').click(function(){ <?php mkdir('/test1/test2', 0777, true); ?> return false; }) 

Вы не можете запустить PHP внутри функции jquery. PHP запускается на стороне сервера, тогда как jquery / javascript выполняется на стороне клиента. Однако вы можете запросить php-страницу, используя jquery, и с PHP-кодом на этой странице запустите mkdir, который вы хотите.

JS:

 $.ajax({ url: 'test.php', success: function(data) { alert('Directory created'); } }); 

test.php FILE:

  <?php mkdir('/test1/test2', 0777, true); ?> 

Прежде всего, вы должны понимать, как работает php (без обид, но это важно). Почему PHP-скрипт не работает в веб-браузере? Чтобы выполнить то, что вам нужно, вам нужно использовать ajax (чтобы запросить скрипт на сервере с помощью javascript)

Файл PHP (createdir.php):

 <?php mkdir('/test1/test2', 0777, true); ?> 

Код JavaScript:

 $('button').click(function() { $.ajax({ url: 'createdir.php', success: function(){ alert('dir created'); } }); return false; }); 

Я не проверял, работает ли код. Если у вас возникнут какие-либо проблемы, вы должны взглянуть на документацию jquery (это awsome :-)) http://api.jquery.com/jQuery.ajax/

Здесь вы смешиваете код на стороне клиента и сервера. Код PHP уже выполняется на сервере, когда пользователь нажимает кнопку, и поэтому ничего не произойдет. Вы можете использовать xmlhttprequest (или ajax) для этого.

Просто выполните запрос ajax, а затем выполните команду сервера PHP:

 $('button').click(function(){ $.ajax({url: 'mkdir.php'}); return false; }) 

и php:

 <?php mkdir('/test1/test2', 0777, true); ?> 

Это все, что вам нужно.

Почему бы не вызвать функцию ajax на стороне сервера? Вы могли бы сделать что-то вроде:

 $('button').click(function() { $.ajax ({ type: "POST", url: "some.php", data: "val1:value&lvaln:valn", success: function(msg) { alert( "Data Saved: " + msg ); } }); return false; }); 

Документация здесь

Старайтесь не вставлять php-код в html. Если вы можете избежать этой практики, тем лучше.

Надеюсь, поможет

JavaScript – сторона клиента.

PHP – сторона сервера.

Вам необходимо выпустить какой-либо вызов AJAX для связи с сервером. JavaScript для создания каталогов на вашем удаленном сервере не существует (это в противном случае было бы большой дырой в безопасности).

ты должен сделать:

 //mkdir.php <?php mkdir('/test1/test2', 0777, true); ?> <script> $('button').click(function(){ $('#hidden').load('mkdir.php'); return false; }) </script> <div id='hidden' style='display:none;'></div> 

Вы можете в значительной степени воспользоваться каркасом, поддерживающим AJAX.

Как автор Agile Toolkit я могу порекомендовать вам попробовать, код будет выглядеть так:

 $button=$page->add('Button'); if($button->setLabel('Create Directory')->isClicked()){ if(mkdir('/tmp/123', 0777, true)){ $button->js()->univ()->alert('Directory Created'); // executes JS code }else{ $button->js()->univ()->alert('Problem'); // executes JS code } } 

Другие структуры могут предложить другие способы упрощения AJAX и сохранить их в одном файле.

Бадди, прежде всего, поймите, что jquery – это язык программирования на стороне клиента, который работает на клиентах, а Php работает на веб-сервере. Подключите PHP-код к файлу php и создайте запрос в php-файл из jquery, используя

 $.ajax();