如何解决在jQuery中运行php函数,单击
| 我如何在jQuery click事件中运行PHP函数。我有以下不正确的信息。当用户单击按钮时,我要直接创建一个新的。$(\'button\').click(function(){
<?php mkdir(\'/test1/test2\',0777,true); ?>
return false;
})
解决方法
您无法在jquery函数中运行PHP。 PHP在服务器端运行,而jquery / javascript在客户端运行。但是,您可以使用jquery请求php页面,并使用该页面中的PHP代码运行所需的mkdir。
JS:
$.ajax({
url: \'test.php\',success: function(data) {
alert(\'Directory created\');
}
});
test.php文件:
<?php mkdir(\'/test1/test2\',0777,true); ?>
,首先,您应该了解php的工作原理(没有冒犯之处,但这是必不可少的)。为什么PHP脚本在Web浏览器中不起作用?
要完成您需要的内容,您必须使用ajax(使用javascript在服务器上请求脚本)
PHP文件(createdir.php):
<?php
mkdir(\'/test1/test2\',true);
?>
JavaScript代码:
$(\'button\').click(function() {
$.ajax({
url: \'createdir.php\',success: function(){
alert(\'dir created\');
}
});
return false;
});
我尚未验证代码是否可以正常工作。如果您遇到任何问题,则应查看jquery文档(这很糟糕:-))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\',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\',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\',true)){
$button->js()->univ()->alert(\'Directory Created\'); // executes JS code
}else{
$button->js()->univ()->alert(\'Problem\'); // executes JS code
}
}
其他框架可能会提供其他方法来简化AJAX并将其保存在一个文件中。
,Buddy首先了解到jquery是一种客户端编程语言,它在客户端浏览器上运行,而Php在Web服务器上运行。将php代码复制到php文件中,并使用以下命令从jquery创建对该php文件的请求
$.ajax();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。