在jQuery中运行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无法

如何在jQuery click事件中运行PHP函数。我有以下不正确的地方。当用户单击一个按钮时,我希望直接创建一个新的

$('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();