Javascript 单击按钮调用jquery函数并访问php

Javascript 单击按钮调用jquery函数并访问php,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我对Wordpress和Woocommerce很陌生。我对Wordpress中的jquery没有什么疑问。假设我有一个函数 function test(){ alert("test"); <?php error_log("Test ---------------------------- ", 0); ?> } 功能测试(){ 警报(“测试”); } 和一个按钮: <input type="button" id="btnc

我对Wordpress和Woocommerce很陌生。我对Wordpress中的jquery没有什么疑问。假设我有一个函数

function test(){
      alert("test");
      <?php
      error_log("Test ---------------------------- ", 0);
      ?>
  }
功能测试(){
警报(“测试”);
}
和一个按钮:

<input type="button" id="btnclick" onclick="test();" value="Test" />`
`

错误日志在页面加载时打印,但不是在单击时打印。但我只想在用户单击按钮时在php块内执行代码。有什么方法可以实现这一点吗?提前谢谢`

不可能那样。如果你愿意的话。在php中,您需要类似ajax的方法,可以调用它。假设您在项目的根目录中有一个名为ajax.php的文件,在那里您可以定义一个名为test()的函数,然后您必须有一个$\u请求转换器,它调用您的函数test(),因此ajax.php如下所示

<?php
  // checks if you sent a parameter named method and calls the method
  // if you provide parameter named params it will send them too
  if(isset($_REQUEST)){
    if(isset($_REQUEST["params"]))
      ajax($_REQUEST["method"],$_REQUEST["params"]);
    else
      ajax($_REQUEST["method"]);
  }

  function ajax($function,$data = null){
    $function($data);
  }
  function test(){
    error_log("Test ---------------------------- ",0);
  }
function test(){
  $.ajax({
    url:"ajax.php",
    data:{
      method:"test"
    }
  });
}

希望它能帮上忙。不可能那样。如果你愿意的话。在php中,您需要类似ajax的方法,可以调用它。假设您在项目的根目录中有一个名为ajax.php的文件,在那里您可以定义一个名为test()的函数,然后您必须有一个$\u请求转换器,它调用您的函数test(),因此ajax.php如下所示

<?php
  // checks if you sent a parameter named method and calls the method
  // if you provide parameter named params it will send them too
  if(isset($_REQUEST)){
    if(isset($_REQUEST["params"]))
      ajax($_REQUEST["method"],$_REQUEST["params"]);
    else
      ajax($_REQUEST["method"]);
  }

  function ajax($function,$data = null){
    $function($data);
  }
  function test(){
    error_log("Test ---------------------------- ",0);
  }
function test(){
  $.ajax({
    url:"ajax.php",
    data:{
      method:"test"
    }
  });
}

希望能有所帮助

jPO已经解释了如何以一种好的方式解决这个问题,但我想我应该解释一下为什么会发生这种情况

PHP在服务器上执行。一旦页面被发送到客户端,PHP就不再存在了。JavaScript发生在客户机上,只要用户正在查看网页,就可以执行JavaScript。由于他们不在同一时间段生活,他们彼此都不了解,不能以这种方式混合在一起

在浏览器中访问页面时,浏览器会向服务器发送请求。在服务器上,PHP解释器遍历请求页面的代码,执行
之间的所有操作。它不了解它周围的其他东西是什么——它可以是HTML、JS、纯文本,任何东西,PHP解释器都不知道也不关心。这就是它在页面加载时写入错误日志的原因

完成PHP解释器后,会生成一个如下所示的文档:

function test(){
      alert("test");
  }

它被发送到客户端,当按下按钮时,JS(没有任何写入错误日志的指令)在客户端上运行。

jPO已经解释了如何以一种好的方式解决这个问题,但我想我应该解释为什么会发生这种情况

PHP在服务器上执行。一旦页面被发送到客户端,PHP就不再存在了。JavaScript发生在客户机上,只要用户正在查看网页,就可以执行JavaScript。由于他们不在同一时间段生活,他们彼此都不了解,不能以这种方式混合在一起

在浏览器中访问页面时,浏览器会向服务器发送请求。在服务器上,PHP解释器遍历请求页面的代码,执行
之间的所有操作。它不了解它周围的其他东西是什么——它可以是HTML、JS、纯文本,任何东西,PHP解释器都不知道也不关心。这就是它在页面加载时写入错误日志的原因

完成PHP解释器后,会生成一个如下所示的文档:

function test(){
      alert("test");
  }
它被发送到客户端,当按下按钮时,JS(没有任何写入错误日志的指令)将在客户端上运行。

阅读。。。允许客户端代码(JS)可以与服务器端代码(PHP)对话。。。允许客户端代码(JS)与服务器端代码(PHP)对话。