Как запустить функцию 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();