【问题标题】:ajax calling of php function from a php page从 php 页面调用 php 函数的 ajax
【发布时间】:2012-01-02 04:48:17
【问题描述】:

这是我的 jQuery 代码:

$.ajax({  
  type: "POST",  
  url: "process.php",
  success: function(msg){
  }  
});

在 process.php 页面中,我有多个功能。一个函数是 sendmail()。

如何通过 ajax 调用这个函数?我将代码编写为: url: "process.php/sendmail", 但什么也没发生。

【问题讨论】:

    标签: php ajax


    【解决方案1】:

    这是你的脚本文件

     $.ajax({
           url: "process.php",
           type: "POST",
           data: "functionName=sendmail",
           cache: true,
           success: function(response){
    
           }
    

    这是你的 process.php 文件

    <?php
    if(isset($_POST))
    {
       if($_POST["functionName"] == "sendmail")
       {
          sendmail();
       }
    }
    ?>
    

    【讨论】:

      【解决方案2】:

      使用Ajax 调用将一些data 传递给process.php

      $.ajax({  
        type: "POST",  
        url: "process.php",
        data: {method: 'one'},
        success: function(msg){
        }  
      });
      

      在php页面中,

      if(isset($_POST["method"])) {
          $method = $_POST["method"];
          if($method=="one") {
             //call methods/functions here
          }
      }
      

      【讨论】:

      • 但是当我使用这个时我得到一个错误如下通知:未定义索引:第 4 行 E:\wamp\www\promo\install\process.php 中的方法
      • @KichuUser - process.php 的第 4 行是什么?
      • $method = $_POST["method"];这是 iam 在第 4 行中编写的用于检查方法是否有任何值的代码
      • 好的,我的代码有误。代码数据中不需要“”:“{method: 'one'}”,
      【解决方案3】:

      下面的代码可能对你有帮助..

       $.ajax({  
            type: "POST",  
            url: "process.php",
            data: {action: 'sendmail'},
            success: function(msg){
            }  
          });
      

      试试这个..

      谢谢。

      【讨论】:

      • 当我使用这个时什么都不会发生
      【解决方案4】:

      没有自动方法告诉 PHP 调用您的函数,但您可以通过简单的检查来完成此操作。由于您正在尝试诸如“process.php/sendmail”之类的 URL,您可以在 PHP 变量 $_SERVER['PATH_INFO']

      上进行测试
      if ('sendmail' == $_SERVER['PATH_INFO']) {
          sendmail();
      }
      

      【讨论】:

        【解决方案5】:

        尝试使用 if else 和 process.php?fun=sendmail

        if($_GET['fun'] == "Sendmail")
          sendmail()
        else
          // something else 
        

        【讨论】:

          【解决方案6】:

          调用发送邮件函数将参数传递给 process.php 文件,并检测该参数,如:

          $.ajax({  
          type: "POST",  
          url: "process.php",
          type: "POST",
          data: {sendMail: "1"},
          success: function(msg){
          }  
          });
          

          现在在 process.php 中使用:

          $_REQUEST['sendMail'] 
          

          检测值..

          【讨论】:

            猜你喜欢
            • 2011-02-23
            • 1970-01-01
            • 1970-01-01
            • 2012-08-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-29
            相关资源
            最近更新 更多