在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();