如何在jQuery click事件中运行PHP函数。我有以下哪些不正确。当用户点击按钮时,我想要一个新的直接创建。
$('button').click(function(){
<?php mkdir('/test1/test2', 0777, true); ?>
return false;
})
答案 0 :(得分:25)
您无法在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); ?>
答案 1 :(得分:8)
首先,你应该了解php是如何工作的(没有冒犯,但这是必不可少的)。 Why PHP script is not workig in a web browser? 要完成您的需要,您必须使用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文档(它很棒:-))http://api.jquery.com/jQuery.ajax/
答案 2 :(得分:3)
您正在混淆客户端和服务器端代码。当用户单击按钮时,PHP代码已在服务器上执行,因此不会发生任何事情。您可以使用xmlhttprequest(或ajax)来实现此目的。
答案 3 :(得分:3)
只需执行ajax请求然后执行PHP服务器端:
$('button').click(function(){
$.ajax({url: 'mkdir.php'});
return false;
})
和php:
<?php mkdir('/test1/test2', 0777, true); ?>
这就是你所需要的一切。
答案 4 :(得分:2)
为什么不在服务器端调用ajax函数? 你可以这样做:
$('button').click(function()
{
$.ajax
({
type: "POST",
url: "some.php",
data: "val1:value&lvaln:valn",
success: function(msg)
{
alert( "Data Saved: " + msg );
}
});
return false;
});
文档here
尽量不要将php代码嵌入到html中。如果你能避免这种做法,那就更好了。
希望有所帮助
答案 5 :(得分:1)
JavaScript - 客户端。
PHP - 服务器端。
您需要发出某种类型的AJAX调用才能与服务器通信。 JavaScript无法在远程服务器上创建目录(否则这将是一个巨大的安全漏洞)。
答案 6 :(得分:1)
你必须这样做:
//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>
答案 7 :(得分:0)
您可以从支持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并将其保存在一个文件中。
答案 8 :(得分:-1)
Buddy,首先要了解jquery是客户端编程语言,它运行在客户端浏览,Php运行在webserver上。将php代码复制到php文件中,并使用$.ajax();