在jQuery中运行php函数单击
如何在jQuery click事件中运行PHP函数。我有以下不正确的地方。当用户单击一个按钮时,我希望直接创建一个新的在jQuery中运行php函数单击,php,javascript,jquery,Php,Javascript,Jquery,如何在jQuery click事件中运行PHP函数。我有以下不正确的地方。当用户单击一个按钮时,我希望直接创建一个新的 $('button').click(function(){ <?php mkdir('/test1/test2', 0777, true); ?> return false; }) $(“按钮”)。单击(函数(){ 返回false; }) JavaScript-客户端 PHP-服务器端 为了与服务器通信,您需要发出某种AJAX调用。JavaScript无法
$('button').click(function(){
<?php mkdir('/test1/test2', 0777, true); ?>
return false;
})
$(“按钮”)。单击(函数(){
返回false;
})
JavaScript-客户端
PHP-服务器端
为了与服务器通信,您需要发出某种AJAX调用。JavaScript无法在远程服务器上创建目录(否则这将是一个巨大的安全漏洞)。您在这里混淆了客户端代码和服务器端代码。当用户单击按钮时,PHP代码已经在服务器上执行,因此不会发生任何事情。您可以使用xmlhttprequest(或ajax)来实现这一点。您不能在jquery函数中运行PHP代码。PHP在服务器端运行,而jquery/javascript在客户端运行。但是,您可以使用jquery请求一个PHP页面,该页面上的PHP代码将运行您想要的mkdir JS: test.php文件:
<?php mkdir('/test1/test2', 0777, true); ?>
您必须执行以下操作:
//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>
//mkdir.php
$('button')。单击(函数(){('hidden')。加载('mkdir.php');返回false;})
只需执行一个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。如果你能避免这种做法,那就更好了
希望它有帮助首先,您应该了解php的工作原理(无意冒犯,但这是必要的)。 要完成所需的任务,必须使用ajax(使用javascript在服务器上请求脚本) PHP文件(createdir.PHP):
我还没有验证代码是否有效。如果您遇到任何问题,您应该看看jquery文档(这是一个很好的:-)您可以从支持AJAX的框架中受益匪浅 作为敏捷工具包的作者,我可以建议您尝试一下,代码如下:
$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运行在Web服务器上。将Php代码复制到Php文件中,并使用
$.ajax();
这个问题可能有太多的重复…@marc,你发布的重复与这个问题无关。感谢所有回答的人。这一切都与你的问题有关。机制可能不同,但最终结果是一样的。@marc你发布的dup链接对我没有帮助。答案如下。如果你浪费时间回答问题而不是批评,那就没什么用了
$('button').click(function() {
$.ajax({
url: 'createdir.php',
success: function(){
alert('dir created');
}
});
return false;
});
$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();