【问题标题】:How to call a PHP function with Ajax?如何使用 Ajax 调用 PHP 函数?
【发布时间】:2011-09-30 10:02:18
【问题描述】:

我有一个返回数组的 PHP 函数:

function lire( $id) {
            $ret = array() ; 
            $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
            $this->db->query($sSQL) ;
            $ret['cnt'] = $this->db->num_rows() ;
                        return $ret;
}

如何在 Ajax 中调用这个 PHP 函数?

【问题讨论】:

标签: ajax


【解决方案1】:

这是对您之前添加的评论的回复。我无法在评论中格式化它。对不起。

 $(document).ready(function() {

      $("#idofinput").blur(function(){


    var value = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name="+$("#idofinput").val(),
    async: false
    }).responseText;

    myval= parseInt(value);

    if(myval>0)
    {
        //your code goes here
    }
    else
    {
    //your code goes here
    }



    }); 

    });

您可以在文档加载时将函数附加到输入元素。

用输入元素id替换idofinput

【讨论】:

  • 如何在文档加载时将函数附加到输入文本?
  • 如果你已经包含了 jquery 并且你把脚本放在了 head 部分,那么如果你用你的输入元素的 id 替换 idofinput 它将适用于输入。
【解决方案2】:

您必须将此代码块放在一个 php 文件中,并且必须在 ajax 函数中调用它,例如:

    var value = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name="+customvariable,
    async: false
    }).responseText;

some.php 文件也会有

      if(isset($_POST['name']))
       {
        $id = mysql_real_escape_string($_POST['name']);
        $ret = array() ; 
        $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
        $this->db->query($sSQL) ;
        $ret['cnt'] = $this->db->num_rows() ;
                    echo $ret;
      }

您将在 value 变量中获得返回值。

【讨论】:

  • 你给的代码好像是我提交表单时得到的返回值!但我想要的是在输入文本的 onBlur 中检查函数的返回值,这样如果返回值大于 0,那么我必须显示警报!如何实现?
【解决方案3】:

在 AJAX 中,您可以向某些 Web 资源发出简单的 HTTP 请求。要从您的函数中获取数据,您可以提供简单的 php 脚本,该脚本将具有 url 参数(id)并调用您的函数。比你

可以使用合适的 Javascript libaray(例如 jQuery)来调用带有该参数的页面。

function lire( $id) {
        $ret = array() ; 
        $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
        $this->db->query($sSQL) ;
        $ret['cnt'] = $this->db->num_rows() ;
                    return $ret;
}

$result = lire($_GET['id']); // CONSIDER SOME ESCAPING OF USER INPUT FOR SECURITY!
echo $result; // OR USE SOME OTHER SORT OF SERIALIZATION (e.g. JSON)

也许您必须设置标题(结果的 MIME 类型)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2011-05-08
    • 2011-01-17
    相关资源
    最近更新 更多